@subject "Dokumentation/Utilities" @database "IO-Converter Anleitung" @author "Markus Kohm" @$VER: io_conv.hyp 2.40 (04/09/95) #%format latex #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #% IO-Converter-Anleitung #% Copyright (c) Markus Kohm, 1995 #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #\documentclass[DIV12,10pt,twoside]{scrreprt} #\usepackage{german} #\usepackage[T1]{fontenc} #\title{IO-Converter 2.40$\beta$} #\author{Markus Kohm} #\date{4. September 1995} #\pagestyle{headings} #\newcommand*{\cmd}[1]{\texttt{\symbol{92}#1}} #\setcounter{tocdepth}{5} #\setcounter{secnumdepth}{3} #\begin{document} #\maketitle #\tableofcontents 1 Allgemeines ? Allgemeines Hier folgen die blichen Anmerkungen, wobei ich darum bitte, da diese `komplett` und `gr ndlich` durchgelesen werden (insbesondere das Kapitel "Rechtliches")! 2 Vorwort ? Vorwort Vor einiger Zeit h uften sich in der MAUS-Gruppe "MT.CAT" die Fragen, ob man mit CAT nicht individuell f r einzelne Empf nger oder Gruppen eine Umlautwandlung aktivieren k nnte. Die Gr nde f r diese W nsche waren vielf ltig, dennoch konnte sich Dirk Steins, der Autor von CAT, nicht dazu entschlie en, soetwas zu implementieren. Aus diesem Grund habe ich irgendwann angefangen, einen solchen selektiven Umlautwandler als CAT-I/O-Filter zu schreiben. Als ich schon bei der Arbeit war, kamen rasch weitere Probleme und W nsche hinzu. So stellte ich bei einer fr heren CAT-Version fest, da bei sehr langen Mails pl tzlich Null-Bytes in den Texten erschienen. Also baute ich einen Filter f r Control-Zeichen ein. Unter gewissen Umst nden wurden von anderen Filtern Tabulatorzeichen in Infiles geschrieben, mit denen die Maus nichts anfangen kann. Also baute ich eine Wandlung f Tabulatoren ein. Da CAT auch den Zeilenumbruch nicht selektiv verwalten und einmal eingef gte Mails nicht neu umbrechen kann, gab es z.B. mit PGP-Mails teilweise Probleme beim Zeilenumbruch. Also baute ich einen Zeilenumbruch ein. Irgendwann reichte der einfache Stringfilter in der Einser-Version von IO-Converter nicht mehr aus. Au erdem gab es von Anfang an Probleme mit dem Pattern-Match-Algorithmus von IO-Converter. Also setzte ich mich wieder an meinen Rechner und begann eine v llig neue Version. Diese arbeitet nun mit regul ren Ausdr cken. Diese Version ist u.a. aus diesem Grund aber auch wegen diverser Vereinfachungen und Erweiterungen nicht mehr zur Einser-Version kompatibel. 2 Rechtliches ? Rechtliches Alle Teile dieses Pakets d rfen frei, aber nur frei weitergegeben und vertrieben werden. Frei bedeutet dabei, da dem Weitergebenden bzw. Vertreiber aus der Weitergabe bzw. dem Vertrieb kein Gewinn entstehen darf. Der Upload in Mailboxen, ftp-Server und hnliche Medien ist gestattet, wenn der Download aus diesen Boxen, Servern oder sonstigen Medien kostenlos m glich und erlaubt ist. Das Paket darf nur vollst ndig, also mit allen zugeh rigen Teilen, und unver ndert weitergegeben bzw. vertrieben werden. Der Autor beh lt sich r jeden Vertriebsweg ein Vetorecht vor. Macht der Autor von diesem Vetorecht Gebrauch, so ist der weitere Vertrieb auf dem entsprechenden Wege untersagt und einzustellen. Dies gilt auch f r Weitergabe auf nichtkommerziellen Wegen, soweit nicht gesonderte Regelungen `schriftlich` vereinbart wurden. Der Autor lehnt jegliche Gew hrleistung und Haftung im Rahmen der gesetzlichen M glichkeiten ab. Die Verwendung aller Teile des Pakets erfolgt auf eigene Gefahr des Anwenders. Zwar habe ich mich bem Programme und Anleitung m glichst fehlerfrei zu bekommen, jedoch ist absolute Korrektheit bei der Komplexit t des Programms und der Anleitung nahezu unm glich. Fehlfunktionen, insbesondere aber nicht ausschlie zusammen mit Fehlbedienung, sind m glich. 2 Autor, Ansporn, Fehler ? Autor ? Ansporn Sollte jemand Fehler in diesem Paket finden (siehe die Hinweise zum Outputlevel), so ist er ausdr cklich aufgefordert, mir diese zu melden. Erreichbar bin ich per #\begin{labeling}{\textbf{MausNet:}} #\item[MausNet:] Markus Kohm @ KA2 #\item[Post:] \begin{flushleft} # Markus Kohm\\ # Augartenstra"se 29\\ # 76137 Karlsruhe #\end{flushleft}\end{labeling} MausNet: Markus Kohm @@ KA2 Post: Markus Kohm Augartenstra 76137 Karlsruhe Bei W nschen und Vorschl gen kann man sich ebenfalls an mich wenden. Ich kann aber nicht versprechen, da diese auch umgesetzt werden. Da das gesamte Paket in meiner knappen Freizeit entsteht, hat vielleicht jemand den Wunsch, mir mit einer kleinen Spende die Weiterentwicklung schmackhaft zu machen oder einfach nur zu danken: #\begin{quote}\begin{flushleft} # Markus Kohm\\ # Konto: 995\,894\\ # Sparda Bank Karlsruhe: 660\,905\,00 #\end{flushleft}\end{quote} Markus Kohm Konto: 995 894 Sparda Bank Karlsruhe: 660 905 00 Jedenfalls w nsche ich erfolgreiches Schaffen! 2 Danksagung ? Danksagung Ich danke Andreas Schrell und Richard Kampmann f r ihre Unterst tzung, Anregung und ausf hrliche Kritik, bei Richard au erdem f r seine erordentliche Geduld. 1 Der IO-Converter ? Der IO-Converter Der IO-Converter ist als I/O-Filter f r CAT entstanden. Da der IO-Converter In- und Outfiles bearbeitet, kann er aber zumindest theoretisch auch mit anderen MausTausch-Programmen verwendet werden. Die Installation des IO-Converters f r CAT ist in einem der nachfolgenden Kapitel beschrieben. F r die Automatisierung mit anderen MausTausch-Programmen kann z.B. das Programm CATAUSCH verwendet werden. 2 Die Funktion ? Die Funktion Der IO-Converter wird normalerweise als I/O-Filter f r CAT installiert. Alternativ kann er aber auch in einem Tausch-Script eingesetzt werden. IO-Converter wirkt direkt auf das In- bzw. das Outfile. IO-Converter ist in der Lage, Zeichen und Strings innerhalb von In- bzw. Outfile-Bl zu ersetzen. In welchen Bl cken was ersetzt wird, kann spezifisch definiert werden. Hierzu dient eine Filterdatei. Der Aufbau dieser Datei ist dem Kapitel Filterdatei zu entnehmen. IO-Converter kann z.B. dazu verwendet werden, den Zeichensatz insgesamt zu konvertieren. N tzlich kann dies z.B. sein, wenn man mit mehreren unterschiedlichen Rechnern an einer Maus oder Quark arbeitet und immer die richtigen Umlaute haben will. Man stellt dann die Umlaute ein, die man online verwendet und l t die Umlaute im In- und Outfile f r den Mail-Rechner konvertieren. IO-Converter kann auch dazu verwendet werden, verschiedene Signaturen, Begr ungen oder Footer auszuw hlen und anzuh ngen sowie den Zeilenumbruch zu bernehmen, wobei er im Gegensatz zum Umbruch in der Maus auch Quotes ber cksichtigen kann. Alle Funktionen des IO-Converters k nnen abh ngig vom Empf nger bzw. der Gruppe oder auch dem Mailtextes konfiguriert werden. Siehe dazu die Beispielfilterdatei "infile.cnf" und die Beispielnicknamedatei "nickname.nik". 2 Aufruf ? Aufruf IO-Converter versteht verschiedene optionale Parameter und erwartet als weiteren Parameter den Namen der zu konvertierenden Datei: io_conv.ttp [-T] [-f @{I}Filterdatei@{i}] [-O @{I}Outputlevel@{i}] [-n @{I}Nicknamedatei@{i}] @{I}Datei@{i} [[1|2]>[>]@{I}Ausgabedatei@{i}] #\begin{labeling}{\texttt{io\_conv.ttp}} #\item[\texttt{io\_conv.ttp}] \texttt{[-T]} \texttt{[-f \emph{Filterdatei}]} # \texttt{[-O \emph{Outputlevel}]} # \texttt{[-n \emph{Nicknamedatei}]}\hfill\\ # \emph{Datei} # \texttt{[[1|2]>[>]\emph{Ausgabedatei}]} #\end{labeling} Die Reihenfolge der Parameter ist beliebig. Die Bedeutung im einzelnen: Normalerweise verwendet IO-Converter als Filterdatei die Datei "io_conv.cnf" im aktuellen Verzeichnis. Mit dem Parameter -f `Filterdatei` kann eine andere Filterdatei angegeben werden. Damit ist es z.B. m glich r In- und Outfile unterschiedliche Filterdateien zu verwenden. Mit dem Parameter -n `Nicknamedatei` kann die Datei zur Konfiguration der Nicknames (Spitznamen) definiert werden. Fehlt dieser Parameter, so wird daf r "nickname.nik" angenommen. Der `Outputlevel` gibt an, welche Ausgaben get tigt werden sollen und welche unterdr ckt werden. Wohin die Ausgabe get tigt wird, kann ber den letzten Parameter festgelegt werden. Mit einer zus tzlichen 1 vor dem ersten Gr erzeichen wird nur die Standardausgabe umgelenkt. Mit einer zus tzlichen 2 vor dem ersten Gr erzeichen wird stattdessen nur die Fehlerausgabe umgelenkt. Ist keine genauere Angabe vorhanden, so werden sowohl Standardausgabe als auch Fehlerausgabe umgelenkt. Werden zwei aufeinanderfolgende erzeichen verwendet, so wird an die angegebene `Ausgabedatei` angeh ngt, sonst wird sie berschrieben. Der Parameter `-T` stellt einen Sonderfall dar. Wenn er angegeben ist, werden lediglich die Parameter berpr ft, Filterdatei und Nicknamedatei geladen und interpretiert und angegeben, welche Datei gefiltert w Die Filterung selbst findet nicht statt. Bei Verwendung des Parameters ist au erdem keine Ausgabeumlenkung m glich. Fehler f hren im Testmodus nicht zu einem Abbruch. Parameter, die vor `-T` stehen, werden jedoch nicht im Testmodus berpr ft und k nnen somit auch zu einem Abbruch hren. Dadurch da IO-Converter selbst die Ausgabeumlenkung vornehmen kann, kann die Ausgabe auch bei einem Aufruf aus CAT umgelenkt werden. Damit wurde die bisher verwendete LOG-Datei berfl ssig. 3 Der Outputlevel ? Outputlevel Mit der Parameteroption "-O `Outputlevel`" (es handelt sich hier um den buchstaben "O") k nnen verschiedene Ausgaben von IO-Converter ein- und ausgeschaltet werden. Beim `Outputlevel` handelt es sich um einen Zahlenwert, wobei jedem Bit eine oder mehrere Ausgaben zugeordnet sind: @#|l|p{.8\textwidth}| #\hline #Bit & Bedeutung\\\hline #0 & unspezifiziert\\ #1 & Warnung bei automatischen Anreden ohne erkennbare Namen\\ #2 & Warnung bei berschreiten der maximalen Mail-L"ange von # 16000 Byte\\ #3 & Warnung bei offensichtlich fehlerhafter Filterung\\ #4--14 & unspezifiziert\\ #15 & Debuginformationen\\\hline Bit | Bedeutung ------|--------------------------------------------------------- 0 | unspezifiziert. 1 | Warnung bei automatischen Anreden ohne erkennbare Namen 2 | Warnung bei berschreiten der maximalen Mail-L nge von | 16000 Byte 3 | Warnung bei offensichtlich fehlerhafter Filterung 4-14 | unspezifiziert 15 | Debuginformationen Eine besondere Bedeutung kommt dem Wert Null zu, bei dem alle Ausgaben unterdr ckt werden. Bei allen anderen Werten (auch wenn nur mindestens ein unspezifiziertes Bit gesetzt ist) erfolgt zumindest ein Hinweis auf Fehler (in Form einer Fehlernummer), die zu einem Abbruch f hren. Der Wert kann dezimal oder hexadezimal mit vorangestelltem "0x" bergeben werden. Die Warnung bei offensichtlich fehlerhafter Filterung wird derzeit ausgegeben, wenn ein Filter das Zeilenende vor einem zu sch tzenden Block oder am Ende einer Mail l scht. Auch ohne Warnung wird in diesem Fall wieder ein Zeilenende eingef @autorefoff Beispiele: @autorefon io_conv.ttp -O 0 schaltet alle Ausgaben aus. io_conv.ttp -O 0x7FFF schaltet alle Ausgaben bis auf Debug-Informationen an. io_conv.ttp -O 1 schaltet nur die Meldung fataler Fehler ein. io_conv.ttp -O 0xFFFF schaltet alle Meldungen inclusive Debug-Meldungen ein. Sollten Fehler bei der Filterung auftreten, so empfehle ich folgendes Vorgehen: chst schaltet man alle Meldungen inclusive Debug-Meldungen ein. Damit kann man dann feststellen, bei welcher MsgID der Fehler auftritt. Nun versucht man, einen m glichst kleinen Ausschnitt im In- bzw. Outfile zu finden, mit dem der Fehler noch auftritt. Nun versucht man weiter, die Filterdatei soweit zu verkleinern, da Fehler gerade noch auftritt. Ebenso geht man mit der Nicknamedatei vor. Sollte man nun zu dem Schlu kommen, da die Ursache nicht in einer der Konfigurationsdateien, sondern bei IO-Converter zu suchen ist, so kann man mir die minimierten Dateien und die IO-Converter-Ausgabe zusenden (per Mail, in meinen PPT in KA oder per gelber Post). Dabei auf keinen Fall vergessen, die verwendete Version von IO-Converter mit anzugeben! 4 Fehlerausgabe und R ckgabecode ? Fehlernummern und R ckgabecode ? Fehlernummern ckgabecode Derzeit gibt IO-Converter im Falle eines fatalen Fehlers (das sind Fehler, die zu einem Abbruch f hren) in der Regel nur eine Fehlernummer und u.U. einen Verursacher aus. Der urspr ngliche Grund daf r war, da IO-Converter so nicht durch die ganzen Fehlermeldungen aufgebl ht wird. Vermutlich wird sich das in einer zuk nftigen Version aber wieder ndern. Die entsprechenden Nummern werden au erdem im Fehlerfall von IO-Converter an das aufrufende Programm zur ckgegeben. @#|r|p{.8\textwidth}| #\hline # Code & Fehlerursache \emph{Parameter"ubergabe}\\ #\hline # 1 & Standardausgabeumleitung nicht m"oglich\\ # 2 & Fehlerausgabeumleitung nicht m"oglich\\ # 3 & Bearbeitungsdatei doppelt angegeben\\ # 4 & Keine Bearbeitungsdatei angegeben\\ # 5 & unbekannter Parameter\\ # 6 & Parameter \texttt{-f} erwartet weiteren Parameter\\ # 7 & Parameter \texttt{-n} erwartet weiteren Parameter\\ # &\\ # 9 & Nicht genug Speicher f"ur diverse Puffer\\ #\hline @#|r|p{.8\textwidth}| #\hline # Code & Fehlerursache \emph{Filterdatei lesen}\\ #\hline # 10 & Dateifehler ("offnen)\\ # 11 & Dateifehler (lesen)\\ # 12 & unbekannter Filtertyp\\ #\hline @#|r|p{.8\textwidth}| #\hline # Code & Fehlerursache \emph{Neuer Filter}\\ #\hline # 20 & Speicher"uberlauf\\ # 21 & Dateifehler\\ # 22 & Zeilenpuffer"uberlauf\\ # 23 & Fehler in regul"arem Ausdruck\\ #\hline @#|r|p{.8\textwidth}| #\hline # Code & Fehlerursache \emph{Stringfilter alter Bauart} ("`\texttt{:}"')\\ #\hline # 30 & Welcher Filter\\ # 31 & Speicherplatz\\ # 32 & Dateifehler\\ # 33 & Zeilen"uberlauf\\ # 34 & "`\texttt{=}"' fehlt\\ #\hline @#|r|p{.8\textwidth}| #\hline # Code & Fehlerursache \emph{Zeichenfilter} ("`\texttt{>}"')\\ #\hline # 40 & Welcher Filter\\ # 41 & Speicherplatz\\ # 42 & Dateifehler\\ # 43 & Zeilen"uberlauf\\ # 44 & Speicherplatz\\ # 45 & "`\texttt{<}"' fehlt\\ # 46 & Dateifehler\\ # 47 & Zeilen"uberlauf\\ #\hline @#|r|p{.8\textwidth}| #\hline # Code & Fehlerursache \emph{Filteraktivierung} ("`\texttt{!}"')\\ #\hline # 50 & Welcher Filter\\ # 51 & Schachtelungstiefe\\ # 52 & Speicherplatz\\ # 53 & Dateifehler\\ # 54 & Zeilen"uberlauf\\ # 55 & Filter nicht gefunden\\ #\hline @#|r|p{.8\textwidth}| #\hline # Code & Fehlerursache \emph{Stringfilter neue Bauart} ("`\texttt{\dq}"')\\ #\hline # 60 & Welcher Filter\\ # 61 & Speicherplatz\\ # 62 & 1. End-"`\texttt{\dq}"' fehlt oder Zeilen"uberlauf\\ # 63 & 2. Anfangs-"`\texttt{\dq}"' fehlt\\ # 64 & 2. End-"`\texttt{\dq}"' fehlt oder Zeilen"uberlauf\\ # 65 & Zeilenende fehlt\\ #\hline @#|r|p{.8\textwidth}| #\hline # Code & Fehlerursache \emph{Filteroptionen} ("`\texttt{-}"')\\ #\hline # 80 & Welcher Filter\\ # 81 & Speicherplatz\\ # 82 & Dateifehler\\ # 83 & unbekannte Option\\ # 84 & unzul"assiger Wert\\ #\hline @#|r|p{.8\textwidth}| #\hline # Code & Fehlerursache \emph{Datei bearbeiten}\\ #\hline # 100 & Umbenennung von \emph{datei}\texttt{.}\emph{extend} in # \emph{datei}\texttt{.\$\$\$}\\ # 101 & Dateifehler ("offnen)\\ # 102 & Dateifehler (lesen)\\ # &\\ # 110 & aus Syntaxgr"unden weder Infile noch Outfile\\ # 111 & Zeilenpuffer"uberlauf\\ # 112 & Zwei "`\texttt{V}"'-Zeilen (Von User), # "`\texttt{A}"'-Zeilen (An User), # "`\texttt{G}"'-Zeilen (Gruppe)\\ # 113 & ID, Username, Gruppenname, Textzeile zu lang\\ # 114 & Auf eine Textzeile folgt kein neuer Block\\ # &\\ # 120 & Fehler beim Zuladen einer Datei\\ # &\\ # 150 & Textzeile wird durch Konvertierung zu lang\\ # &\\ # 201 & Dateifehler (erzeugen)\\ # 250 & Dateifehler (schreiben)\\ # 299 & Dateifehler (schreiben beim Schlie"sen)\\ #\hline Code | Fehlerursache ------|------------------------------------------------------- | Parameter bergabe: 1 | Standardausgabeumleitung nicht m glich 2 | Fehlerausgabeumleitung nicht m glich 3 | Bearbeitungsdatei doppelt angegeben 4 | Keine Bearbeitungsdatei angegeben 5 | unbekannter Parameter 6 | Parameter -f erwartet weiteren Parameter 7 | Parameter -n erwartet weiteren Parameter | 9 | Nicht genug Speicher f r diverse Puffer ------|------------------------------------------------------- | Filterdatei lesen: 10 | Dateifehler ( ffnen) 11 | Dateifehler (lesen) 12 | unbekannter Filtertyp ------|------------------------------------------------------- | Neuer Filter: 20 | Speicher berlauf 21 | Dateifehler 22 | Zeilenpuffer berlauf 23 | Fehler in regul rem Ausdruck ------|------------------------------------------------------- | Stringfilter alter Bauart: (":") 30 | Welcher Filter 31 | Speicherplatz 32 | Dateifehler 33 | Zeilen berlauf 34 | "=" fehlt ------|------------------------------------------------------- | Zeichenfilter: (">") 40 | Welcher Filter 41 | Speicherplatz 42 | Dateifehler 43 | Zeilen berlauf 44 | Speicherplatz 45 | "<" fehlt 46 | Dateifehler 47 | Zeilen berlauf ------|------------------------------------------------------- | Filteraktivierung: ("!") 50 | Welcher Filter 51 | Schachtelungstiefe 52 | Speicherplatz 53 | Dateifehler 54 | Zeilen berlauf 55 | Filter nicht gefunden ------|------------------------------------------------------- | Stringfilter neue Bauart: ('"') 60 | Welcher Filter 61 | Speicherplatz 62 | 1. End-'"' fehlt oder Zeilen berlauf 63 | 2. Anfangs-" fehlt 64 | 2. End-'"' fehlt oder Zeilen berlauf 65 | Zeilenende fehlt ------|------------------------------------------------------- | Filteroptionen: ("-") 80 | Welcher Filter 81 | Speicherplatz 82 | Dateifehler 83 | unbekannte Option 84 | unzul ssiger Wert ------|------------------------------------------------------- | Datei bearbeiten: 100 | Umbenennung von . in .$$$ | fehlgeschlagen 101 | Dateifehler ( ffnen) 102 | Dateifehler (lesen) | 110 | aus Syntaxgr nden weder Infile noch Outfile 111 | Zeilenpuffer berlauf 112 | Zwei "V"-Zeilen (Von User), "A"-Zeilen (An User), | "G"-Zeilen (Gruppe) 113 | ID, Username, Gruppenname, Textzeile zu lang 114 | Auf eine Textzeile folgt kein neuer Block | 120 | Fehler beim Zuladen einer Datei | 150 | Textzeile wird durch Konvertierung zu lang | 201 | Dateifehler (erzeugen) 250 | Dateifehler (schreiben) 299 | Dateifehler (schreiben beim Schlie | 2 Environment ? Environment IO-Converter verwendet keine Environment-Variablen. 2 Installation ? Installation IO-Converter kann unterschiedlich installiert werden. Wer ein eigenes Tausch-Script erstellen kann oder Scripten f r die Mupfel schreibt, wird auch leicht in der Lage sein, IO-Converter entsprechend aufzurufen. Im Folgenden soll deshalb die Installation f r CAT gesondert beschrieben werden. 3 Installation als CAT-I/O-Filter ? Installation als CAT-I/O-Filter IO-Converter kann als I/O-Filter f r CAT installiert werden. Erstellen Sie hierzu zun chst eine Filterdatei f r Infiles und eine weitere Filterdatei f r Outfiles. Gehen Sie dann wie folgt vor: #\begin{enumerate} #\item "Offnen Sie in CAT den Dialog \fbox{\strut\texttt{Optionen}} #\fbox{\strut\texttt{I/O-Filter...}}. #\item W"ahlen Sie einen freien Eintrag #(\fbox{\strut\texttt{Nicht installiert}}) aus. #\item Geben Sie einen Namen, z.B. \texttt{IO-Converter}, ein. #\item Stellen Sie sicher, da"s bei \texttt{Wof"ur:} #\fbox{\strut\texttt{~f"ur In/Outfile~}} angegeben ist. #\item Klicken Sie auf \texttt{Programm: \fbox{\strut~~~~~leer~~~~~}} und #w"ahlen Sie dann \texttt{io\_conv.ttp} aus. #\item Kreuzen Sie den Knopf \texttt{\fbox{\strut~~} f"ur Infile} an. #\item Geben Sie die Parameterzeile f"ur das Infile an. Dies k"onnte z.B. #\begin{verbatim} # -f infile.cnf $M$F #\end{verbatim} #sein. #\item Kreuzen Sie den Knopf \texttt{\fbox{\strut~~} f"ur Outfile} an. #\item Geben Sie die Parameterzeile f"ur das Outfile an. Dies k"onnte z.B. #\begin{verbatim} # -f outfile.cnf $I$O #\end{verbatim} #sein. #\item Kreuzen Sie den Knopf \texttt{\fbox{\strut~~} aktiv} an. #\end{enumerate} 1. ffnen Sie in CAT den Dialog . 2. W hlen Sie einen freien Eintrag ([Nicht installiert]) aus. 3. Geben Sie einen Namen, z.B. IO-Converter, ein. 4. Stellen Sie sicher, da bei "Wof r:" [ f r In/Outfile ] angegeben ist. 5. Klicken Sie auf "Programm: [ leer ]" und w hlen Sie dann io_conv.ttp aus. 6. Kreuzen Sie den Knopf "[ ] f r Infile" an. 7. Geben Sie die Parameterzeile f r das Infile an. Dies k z.B. "-f infile.cnf $M$F" sein. 8. Kreuzen Sie den Knopf "[ ] f r Outfile" an. 9. Geben Sie die Parameterzeile f r das Outfile an. Dies k z.B. "-f outfile.cnf $I$O" sein. 10. Kreuzen Sie den Knopf "[ ] aktiv" an. Der Dialog m te jetzt in etwa so aussehen: #\begin{center} #\framebox[.67\textwidth][c]{\parbox{.65\textwidth}{\tt # \hspace*{\fill}\\ # In- und Outfile-Filter installieren\hfill\\ # \hspace*{\fill}\\ # Filter:~~~~\fbox{\strut~~IO-Converter~~}\fbox{\strut\,$\downarrow$\,}\hfill\\ # \hspace*{\fill}\\ # Name:~~~~~~IO-Converter\underline{~~~~~~}~~~~~~\fbox{\strut\,x\,} aktiv\hfill\\ # \hspace*{\fill}\\ # Programm:~~\fbox{\strut~~IO\_CONV.TTP~~}\hfill\\ # \hspace*{\fill}\\ # Wof"ur:~~~~~\fbox{\strut f"ur In-/Outfile}\fbox{\strut\,$\downarrow$\,}~~~~~\fbox{\strut\,$\downarrow$\,} f"ur Infile\hfill\\ # \hspace*{20em}\fbox{\strut\,$\downarrow$\,} f"ur Outfile\hfill\\ # Kommandozeile f"ur Infile:\hfill\\ # -f infile.cnf \$M\$F\underline{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}\hfill\\ # \hspace*{\fill}\\ # Kommandozeile f"ur Outfile:\hfill\\ # -f outfile.cnf\$I\$O\underline{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}\hfill\\ # \hspace*{\fill}}} #\end{center} ----------------------------------------------------------- | | | In- und Outfile-Filter installieren | | | | Filter: [ IO-Converter ][v] | | | | Name: IO-Converter________ [x] aktiv | | | | Programm: [ IO_CONV.TTP ] | | | | Wof r: [f r In-/Outfile ][v] [x] f r Infile | | [x] f r Outfile | | Kommandozeile f r Infile: | | -f infile.cnf $M$F_______________________________________ | | | | Kommandozeile f r Outfile: | | -f outfile.cnf $I$O______________________________________ | | | ----------------------------------------------------------- Sollten Sie IO-Converter nur f r Infiles installieren wollen, so entfallen Punkt (6) und (7). Sollten Sie IO-Converter nur f r Outfiles installieren wollen, so entfallen Punkt (8) und (9). Eine Besonderheit tritt ein, wenn Sie neben IO-Converter auch PGP verwenden wollen. In diesem Fall sollte IO-Converter zweimal installiert werden, einmal f r Infiles `vor` dem PGP-Utility, einmal f r Outfiles `nach` dem PGP-Utility. Auf diese Weise kann IO-Converter jeweils auf die unverschl sselten Nachrichten wirken. 3 Info-Zeilen-Formate in CAT ? Info-Zeilen-Formate in CAT Ich empfehle, die Formate f r die beiden Infozeilen in CAT wie folgt einzustellen: '* Gruppe: 'G'\015* Name: 'U'\015' '* An: 'U'\015' oder: '* Gruppe: 'G'\015* Name: 'R'\015' '* An: 'U'\015* Name: 'R'\015' Bei gleichzeitiger Verwendung von Jelly Cat ab Version 1.1 gen gt in jedem Fall ein Format der Form: '* Name: 'R'\015' Dabei ist statt "\015" jeweils [CTRL][M] zu dr cken. Die Bedeutung der beiden Formate entnehmen Sie bitte dem Kapitel den Infoblock. Die erste Zeile kann in CAT normalerweise mit [ALT][N], die zweite mit [ALT][SHIFT][N] erreicht werden. Die erste ist bei Kommentaren in Gruppen, die zweite bei PM-Kommentaren sinnvoll (solange CAT Kommentare im Infile anders behandelt als neue Mails). Eingestellt werden die Formate in CAT im "Optionen"-Men ber den punkt "Formate...". N heres ist dem CAT-Handbuch oder dem CAT-Hypertext zu entnehmen. 2 Filterdatei ? Filterdatei Gegen ber der ersten Version von IO-Converter hat sich der Aufbau der Filterdatei grundlegend ge ndert. Aus diesem Grund wurde auch die Standardendung von "`.dat`" in "`.cnf`" ge ndert. Die alten Filterdateien sind nicht mehr kompatibel, k nnen jedoch mit wenigen nderungen in das neue Format gebracht werden. Betroffen ist nur das Pattern-Matching (die Platzhalter, die verwendet werden konnten). Dieses wurde durch "Regul re Ausdr cke" ersetzt, die wesentlich m chtiger sind. 3 Regul re Ausdr ? Regul re Ausdr ? regul re Ausdr ? regul rer Ausdruck ? regul rem Ausdruck Der regul re Ausdruck beschreibt ein zu suchendes Muster. Dabei sind verschiedene Sonderzeichen m glich, die f r andere Zeichen bzw. eine ganze Reihe anderer Zeichen stehen. @#|l|p{.8\textwidth}| #\hline "." Der Punkt steht f r ein beliebiges Zeichen. #\texttt{.} & # Der Punkt steht f"ur ein beliebiges Zeichen.\\\hline "^" Das Caret steht f r den Zeilenanfang. Dies wird derzeit nicht ausgewertet, mu aber gequotet werden (s.u.). #\texttt{\symbol{94}} & # Das Caret steht f"ur den Zeilenanfang. Dies wird derzeit # nicht ausgewertet, mu aber gequotet werden (s.u.).\\\hline "$" Das Dollarzeichen steht f r das Zeilenende. #\texttt{\$} & # Das Dollarzeichen steht f"ur das Zeilenende.\\\hline "\" Der Backslash dient dem Quoten einzelner Zeichen. Um z.B. das "."-Zeichen selbst darstellen zu k nnen, schreiben Sie "\."; ebenso "\\", "\^", "\$". Sonderzeichen m grunds tzlich gequotet werden. #\texttt{\symbol{92}} & # Der Backslash dient dem Quoten einzelner Zeichen. Um z.B. # das "`\texttt{.}"'-Zeichen selbst darstellen zu k"onnen, # schreiben Sie "`\texttt{\symbol{92}.}"'; ebenso # "`\texttt{\symbol{92}\symbol{92}}"', # "`\texttt{\symbol{92}\symbol{94}}"', # "`\texttt{\symbol{92}\$}"'. Sonderzeichen m"ussen grunds"atzlich # gequotet werden.\\\hline "*" Wenn einem Zeichen ein "*" folgt, bedeutet das, da letzte Zeichen beliebig oft (auch gar nicht) auftreten darf. #\texttt{*} & # Wenn einem Zeichen ein "`\texttt{*}"' folgt, bedeutet # das, da"s das letzte Zeichen beliebig oft (auch gar nicht) # auftreten darf.\\\hline "+" Wie "*", jedoch mu das letzte Zeichen mindestens einmal auftreten. #\texttt{+} & # Wie "`\texttt{*}"', jedoch mu das letzte Zeichen mindestens # einmal auftreten.\\\hline "?" Wie "*", jedoch darf das letzte Zeichen h chstens einmal auftreten. #\texttt{?} & # Wie "`\texttt{*}"', jedoch darf das letzte Zeichen h"ochstens # einmal auftreten,\\\hline "|" Der regul re Ausdruck links davon oder rechts davon mu zutreffen (z.B. trifft "abc|xyz" sowohl auf "abc" als auch auf "xyz", nicht jedoch auf "abz" zu). #\texttt{\symbol{124}} & # Der regul"are Ausdruck links davon oder rechts davon mu # zutreffen. (z.B. trifft "`\texttt{abc\symbol{124}xyz}"' sowohl # auf "`\texttt{abc}"' als auch auf "`\texttt{yxz}"', nicht # jedoch auf "`\texttt{abz}"' zu).\\\hline "[]" Zeichensatz. Eine Zeichenkette in eckigen Klammern steht f r genau diese Zeichen, aber keine anderen. Wenn das erste Zeichen ein Caret ist, steht der Zeichensatz f r alle Zeichen au er den angegebenen. @autorefoff Beispiele: @autorefon "[xyz]" steht f r "x" oder "y" oder "z", "[^xyz]" steht f r alles au er "x", "y" oder "z" Ein Zeichenbereich kann durch "-" angegeben werden: "[a-z]" steht f r alle Kleinbuchstaben, "[0-9]" steht f r alle Ziffern, "[0-9a-fA-F]" steht f r alle Hexadezimalzeichen, Achtung: "[z-a]" steht f r gar nichts! #\texttt{[\,]} & Zeichensatz.\newline # Eine Zeichenkette in eckigen Klammern steht f"ur genau # diese Zeichen, aber keine anderen. Wenn das erste Zeichen # ein Caret ist, steht der Zeichensatz f"ur alle Zeichen # au"ser den angegebenen.\newline # Beispiele: # \begin{description} # \item["`\texttt{[abc]}"'] steht f"ur "`\texttt{a}"' oder # "`\texttt{b}"' oder "`\texttt{c}"', # \item["`\texttt{[\symbol{94}abc]}"'] steht f"ur alles au"ser # "`\texttt{a}"', # "`\texttt{b}"' oder # "`\texttt{c}"' # \end{description} # Ein Zeichenbereich kann durch "`\texttt{-}"' angegeben werden: # \begin{description} # \item["`\texttt{[a-z]}"'] steht f"ur alle Kleinbuchstaben, # \item["`\texttt{[0-9]}"'] steht f"ur alle Ziffern, # \item["`\texttt{[0-9a-fA-F]}"'] steht f"ur alle Hexadezimalzeichen, # \end{description}~\newline # Achtung: # \begin{description} # \item["`\texttt{[z-a]}"'] steht f"ur gar nichts! # \end{description}\\\hline "()" Ein Ausdruck in runden Klammern stellt einen Unterbereich dar. Unterbereiche sind z.B. zusammen mit "|" n tzlich (z.B. steht "(begin|end) +.*" f r alles, was mit "begin" oder "end", gefolgt von mindestens einem Leerzeichen anf ngt). #\texttt{()} & # Ein Ausdruck in runden Klammern stellt einen Unterbereich dar. # Unterbereiche sind z.B. zusammen mit "`\texttt{\symbol{124}}"' # n"utzlich (z.B. steht "`\texttt{(begin|end) +.*}"' f r alles, # was mit "`\texttt{begin}"' oder "`\texttt{end}"', gefolgt von # mindestens einem Leerzeichen anf"angt).\\\hline 3 Aufbau der Filterdatei ? Filterdateiaufbau Die Filterdatei besteht aus einzelnen Filterdefinitionen. Jede dieser Filterdefinitionen wird von einem Schl sselwort eingeleitet und reicht bis zum n chsten Schl sselwort. Es gibt sechs Schl sselw rter, die unterschiedliche Filter einleiten: FILTER, ALLE, GRUPPE, PERSON, WEGEN, ZEILE. Au er dem ALLE-Filter, folgt auf jedes Schl sselwort ein Gleichheitszeichen und eine n Filterspezifikation bzw. ein Filtername. Die Bedeutung der einzelnen Filter ist den jeweiligen Unterkapiteln zu entnehmen. Innerhalb jeder Filterdefinition kann nun eine ganze Reihe von Filteraktionen definiert werden. Jede Filteraktion ist durch ein Schl sselzeichen am Zeilenanfang gekennzeichnet. Eine Besonderheit stellen dabei Zeilen dar, die mit einem Doppelkreuz (#) oder einem Semikolon (;) beginnen. Diese Zeilen werden nicht ausgewertet, sondern stellen Kommentare dar. Leerzeilen werden wie Kommentare behandelt. Kommentare d rfen als einziges bereits vor dem ersten Schl sselwort stehen. Die Filter werden sp ter in zur Definition umgekehrter Reihenfolge ausgef hrt, das hei t, der zuletzt definierte Filter wird als erster, der zuerst definierte Filter als letzter abgearbeitet. Alle Zeilen innerhalb der Filterdatei werden als C-Strings interpretiert. IO-Converter liegen zwei Beispielfilterdateien "infile.cnf" und "outfile.cnf" bei, mit denen die Verwendung demonstriert wird. 4 Filteraktionen ? Filteraktionen er Leerzeilen sind derzeit folgende Zeilen definiert: @#|l|p{.8\textwidth}| #\hline # Zeichen & Aktion\\\hline #\texttt{\#} & Kommentarzeile\\ #\texttt{;} & Kommentarzeile\\ #\texttt{!} & Aktivierung eines FILTER-Filters\\ #\texttt{?} & Inverse Aktivierung eines FILTEr-Filters\\ #\texttt{-} & Filteroption\\ #\texttt{>} & Einzelzeichenersetzung\\ #\texttt{<} & diese Zeile geh"ort zu einer \texttt{>}-Zeile\\\hline #\texttt{:} & Einfache Stringersetzung\\ #\texttt{\dq} & Erweiterte Stringersetzung\\ #\hline Zeichen | Aktion ---------|-------------------------------------------------- # | Kommentarzeile ; | Kommentarzeile ! | Aktivierung eines Filters von Typ FILTER ? | Inverse Aktivierung eines Filters vom Typ FILTER - | Filteroption > | Einzelzeichenersetzung < | diese Zeile geh rt zu einer >-Zeile : | Einfache Stringersetzung " | Erweiterte Stringersetzung 5 Kommentarzeile ? Kommentarzeile #\par\null\par\noindent Eine Kommentarzeile hat folgenden regul ren Aufbau: ^ *[#;].*$ Das hei t, sie beginnt ("^") mit einer beliebigen Anzahl an Leerzeichen (" *"), gefolgt von einem Doppelkreuz oder Semikolon ("[#;]") und endet am Zeilenende (".*$"). Kommentarzeilen werden komplett ignoriert. Zwar verlangsamen sie das Einlesen der Filterdatei, dies sollte jedoch niemanden davon abhalten, seine Filterdateien ordentlich zu kommentieren! Ohne ordentliche Kommentierung wird die Fehlersuche mit Sicherheit sehr schwer. Fehler jedoch sind zumindest am Anfang in Folge der fehlertr chtigen regul ren Ausr cke durchaus zu erwarten. 5 Aktivierung eines Filters von Typ FILTER ? Aktivierung eines Filters von Typ FILTER #\par\null\par\noindent Eine Aktivierungszeile hat den folgenden Aufbau: !@{I}Filtername@{i} #\begin{center} #\texttt{!}\emph{Filtername} #\end{center} Dabei gibt der `Filtername` den Namen eines Filters vom Typ FILTER an, der bei G ltigkeit des aktuellen Filters ebenfalls g ltig werden soll. Der zu aktivierende Filter mu in der Filterdatei vor dem Filter stehen, der die Aktivierungszeile enth Auf diese Weise ist es m glich, Filter innerhalb von Filtern aufzurufen. Es ist jedoch nur eine maximale Schachtelungstiefe von 10 Filtern erlaubt. Gr ere Schachtelungstiefen d rften in den seltensten F sinnvoll sein, da die Filterdefinitionen dann rasch un bersichtlich werden. Der Filtername wird als C-String interpretiert. 5 Inverse Aktivierung eines Filters vom Typ FILTER ? Inverse Aktivierung eines Filters vom Typ FILTER #\par\null\par\noindent Eine Aktivierungszeile hat den folgenden Aufbau: ?@{I}Filtername@{i} #\begin{center} #\texttt{?}\emph{Filtername} #\end{center} Dabei gibt der `Filtername` den Namen eines Filters vom Typ FILTER an, der bei G ltigkeit des aktuellen Filters ung ltig werden soll. Beinhaltet jener Filter ebenfalls Filteraktivierungen, so werden diese zu inversen Filteraktivierungen. Beinhaltet jener Filter ebenfalls inverse Filteraktivierungen, so werden diese zu Filteraktivierungen. Der invers zu aktivierende Filter mu in der Filterdatei vor dem Filter stehen, der die Aktivierungszeile enth Auf diese Weise ist es m glich, Filter innerhalb von Filtern wieder zu deaktivieren. Es ist jedoch nur eine maximale Schachtelungstiefe von 10 Filtern erlaubt. Gr ere Schachtelungstiefen d rften in den seltensten llen sinnvoll sein, da die Filterdefinitionen dann auch sehr rasch bersichtlich werden. 5 Filteroption ? Filteroption #\par\null\par\noindent Eine Filteroptionszeile hat folgenden Aufbau: -@{I}Option@{i}=@{I}Wert@{i} #\begin{center} #\texttt{-}\emph{Option}\texttt{=}\emph{Wert} #\end{center} Ist der zugeh rige Filter aktiviert (g ltig), so erh lt die `Option` den angegebenen `Wert`. Derzeit sind verschiedene Filteroptionen definiert, deren Einzelbedeutungen dem entsprechenden Kapitel zu entnehmen sind: @#|l|l|l| #\hline #Option & Typ & Standardwert\\\hline #Anrede & Symbol & off \\ #Controlfilter & Schalter & off \\ #Dateiladen & Schalter & off \\ #Filterschutz & Schalter & off \\ #Footer & Schalter & off \\ & Schalter & off \\ #LALL-Filter & Schalter & off \\ #Leermailfilter & Schalter & off \\ #Quoteumbruch & Schalter & off \\ #RE-Filter & Schalter & off \\ #Zeilenl nge & Zahlwert & 16384 \\\hline Option | Typ | Standardwert ----------------|----------|-------------- Anrede | Symbol | off Controlfilter | Schalter | off Dateiladen | Schalter | off Filterschutz | Schalter | off Footer | Schalter | off Gru | Schalter | off LALL-Filter | Schalter | off Leermailfilter | Schalter | off Quoteumbruch | Schalter | off RE-Filter | Schalter | off Zeilenl nge | Zahlwert | 16384 Da beliebig viele Optionen innerhalb eines Filters angegeben werden und au erdem mehrere Filter gleichzeitig aktiv sein k nnen, w re es bei einigen Optionen denkbar, da widerspr chliche Einstellungen aktiviert werden. In diesem Fall ist in der Regel die Einstellung des zuletzt abgearbeiteten Filters g ltig. N heres dazu ist den jeweiligen Optionen zu entnehmen, so gibt es z.B. bei "Zeilenl nge", "Anrede", "Gru " und "Footer" Ausnahmen von dieser Regel. 6 Filteroption Anrede ? Anrede #\par\null\par\noindent Es geh rt nun einmal zum guten Ton, da man die Leute mit einem hlichen "Hallo" oder hnlichem anredet. Manch einer h lt dergleichen r Tand, der nur die Mail verg ert, das Datenaufkommen erh Plattenplatz verschwendet u. . Andere wiederum sind gekr nkt, wenn man den freundlichen Gru am Anfang (oder Ende) vergi IO-Converter bietet die M glichkeit, verschiedene Begr ungen zuf auszuw hlen und automatisch an den Anfang der Mail zu setzen. Dabei werden zwei unterschiedliche Konzepte unterst tzt und vereinigt. IO-Converter versucht zun chst, aus dem Infoblock oder dem Mailheader eine Adresse oder einen Namen f r die Anrede zu ermitteln. Gelingt dies, so wird eine Begr ungsanrede ber die Nicknamedatei gesetzt. Ist dort keine Anrede definiert, so wird eine der fest eingebauten Anreden mit Namen versehen und verwendet. Kann IO-Converter keinen Empf ngernamen ermitteln, so wird eine der eingebauten Anreden ohne Namen verwendet. Jede der Anreden kann einzeln eingeschaltet werden: -Anrede=hallo -Anrede=hi -Anrede=moin -Anrede=servus -Anrede=hall -Anrede=mog -Anrede=ave -Anrede=salve -Anrede=sei gegr -Anrede=peace -Anrede=gr -Anrede=hello -Anrede=bonjour -Anrede=ahugahaga -Anrede=bonsai -Anrede=mah-jongg erdem kann jegliche Anrede mit einem der Abschaltwerte, die bei der Option "Controlfilter" beschrieben sind, verhindert werden. In dem Fall tzt es auch nichts, wenn eine Anrede von einem anderen aktiven Filter wieder eingeschaltet wird. Die Abschaltung hat absolute Priorit t. Damit ist es m glich, einige Anreden generell freizuschalten und f r bestimmte Empf nger alle Anreden abzuschalten. Mit einem der Einschaltwerte, die bei der Option "Controlfilter" angegeben sind, k nnen s mtliche Anreden eingeschaltet werden, aber auch dies nur, wenn sie nicht explizit abgeschaltet sind. Ist keine dieser Anreden eingeschaltet, so wird auch keine Anrede aus der Nicknamedatei verwendet! 6 Filteroption Controlfilter ? Controlfilter #\par\null\par\noindent Hin und wieder kommt es vor, da ein anderer I/O-Filter Control-Zeichen mit ASCII-Code kleiner 32 in Mails einmischt. Ich hatte bei besonders langen Mails auch einmal CAT in einer lteren Version im Verdacht, hin und wieder NUL-Bytes einzustreuen. Solche Steuerzeichen haben zwei Nachteile. Zum einen werden sie von der MAUS h licherweise in Fragezeichen ("?") gewandelt, zum anderen weigert sich CAT selbst (zumindest bis Version 2.63) Mails mit Steuerzeichen zu lesen. Mit einer der Einstellungen: -Controlfilter=on -Controlfilter=true -Controlfilter=yes -Controlfilter=ein -Controlfilter=wahr -Controlfilter=ja nnen solche Steuerzeichen eliminiert werden, wohingegen bei einer der Einstellungen: -Controlfilter=off -Controlfilter=false -Controlfilter=no -Controlfilter=aus -Controlfilter=falsch -Controlfilter=nein Steuerzeichen bernommen werden. Bei widerspr chlichen Angaben z hlt diejenige, die in der Filterdatei am weitesten oben steht, also zuerst definiert wurde. 6 Filteroption Dateiladen ? Dateiladen #\par\null\par\noindent Es ist m glich, Text-Dateien zu einem Mailtext hinzuzuladen. Dazu wird in den Text eine Zeile: $Datei{@{B}Dateiname@{b}} #\begin{quote} # \verb|$Datei{|\textsl{Dateiname}\verb|}| #\end{quote} eingef gt. Nach der schlie enden Klammer darf kein Text, auch kein Leerzeichen, mehr folgen. Die Datei mit dem `Dateiname`n wird dann an der entsprechenden Stelle in den Text eingef gt. Der Text unterliegt der weiteren Filterung. Innerhalb des Textes werden aber keine weiteren Dateien eingeladen. Hinweis: Als Zeilenumbruch wird innerhalb des einzuf genden Textes sowohl CR+LF als auch LF erkannt. Ein einzelnes CR wird hingegen ignoriert. Soll der Text keiner weiteren Filterung unterliegen, also gesch sein, so verwendet man "$$Datei" an Stelle von "$Datei". Die Optionswerte zur Aktivierung und Deaktivierung dieses Mechanismus sind wie bei der Filteroption "Controlfilter" zu verwenden. Bei widerspr chlichen Angaben z hlt ebenfalls diejenige, die in der Filterdatei am weitesten oben steht, also zuerst definiert wurde. 6 Filteroption Filterschutz ? Filterschutz #\par\null\par\noindent Sowohl beim Versenden, als auch beim Empfang z.B. von UUE-codierten (Bin r)-Dateien, w re es katastrophal, wenn innerhalb des UUE-Teils irgendeine Ersetzung stattfinden w rde. In der Regel w re es dann nicht @autorefoff mehr m glich, den urspr nglichen Inhalt zu rekonstruieren. Deshalb @autorefon existieren verschiedene Mechanismen, um Teile einer Mail von der Filterung auszunehmen. Gehorcht eine Textzeile innerhalb einer Mail einem der folgenden regul ren Ausdr ^begin: .*$ ^begin$ ^table$ ^\$begin$ ^-----PGP START MESSAGE-----$ so wird ab dieser Zeile nicht mehr gefiltert (es erfolgt auch kein Zeilenumbruch entsprechend der Filteroption Zeilenl nge). Die Filterung wird solange unterdr ckt, bis das Mailende erreicht wird, oder bis eine Zeile gefunden wird, die einem der regul ren Ausdr ^end$ ^\$end$ ^-----PGP END MESSAGE-----$ gehorcht. Nach dieser Zeile wird wieder gefiltert. Bei den Varianten "$begin" und "$end" wird au erdem die jeweilige Textzeile gel scht. Da nun leider Mails nur eine maximale L nge von 16000 Zeichen enthalten rfen, auf der anderen Seite UUE-Teile oft l nger sind, werden UUE-Teile oftmals einfach gesplittet (ohne die Segmentierungsoption von UUE zu verwenden). Diese UUE-Teile sind dann nicht mit "table" bzw. "begin" und "end" eingefa t. Daher wurden zwei weitere Schutzmechanismen implementiert. Sind in einer Mail mehr als 2 gleichlange Zeilen mit einer Breite von mindestens 40 Zeichen und ohne Leerzeichen zu finden, so werden diese Zeilen nicht gefiltert. Aus Sicherheitsgr nden ist zus tzlich die chste Zeile von der Filterung ausgenommen. Sind in einer Mail mehr als 4 gleichlange Zeilen mit einer Breite gr 40 zu finden, die alle mit einem "M" beginnen, so werden diese Zeilen (und ebenfalls die n chste darauf folgende) von der Filterung ausgenommen. Damit d rften die meisten vorkommenden UUE-Codierungen von der Filterung ausgenommen sein. Sollte jemand der Meinung sein, er habe einen besseren - um nicht zu sagen: genialen - Algorithmus f r die Erkennung schutzw rdiger Mailteile, so m ge er mir diesen bitte mitteilen. Eingeschaltet werden s mtliche Ausnahmen derzeit ber die Filteroption "Filterschutz". Die Optionswerte sind wie bei der Filteroption "Controlfilter" zu verwenden. 6 Filteroption Footer ? Footer #\par\null\par\noindent Der Footer wird erlaubt oder verboten. Dabei hat das Verbieten (Abschalten) h here Priorit t, das hei t, der explizit abgeschaltete Footer kann nicht wieder eingeschaltet werden. heres zu Footern findet sich bei der Erkl rung zur Footerdatei und dem Schl sselwort @FOOTER. Die Optionswerte sind wie bei der Filteroption "Controlfilter" zu verwenden. 6 Filteroption Gru ? Gru #\par\null\par\noindent Der automatische Schlu satz kann ein- und ausgeschaltet werden. Dabei hat das Abschalten h here Priorit t, das hei t, der explizit abgeschaltete Schlu satz kann nicht wieder eingeschaltet werden. Der Schlu satz oder Schlu wird normalerweise direkt ans Ende der Mail gesetzt. Enth lt die Mail aber eine Zeile, die nur aus zwei bis drei Minuszeichen besteht, oder eine Zeile, die mit "PS.", "PS:", "PS " oder "P.S." beginnt (wobei Gro -/Kleinschreibung nicht beachtet wird), so wird der Gru unmittelbar vor diese Zeile gesetzt. Auf den Gru folgt dann au erdem eine zus tzliche Leerzeile. heres zum Schlu satz oder Schlu findet sich in der Erkl rung zur Nicknamedatei unter dem Schl sselwort @GR Die Optionswerte sind wie bei der Filteroption "Controlfilter" zu verwenden. 6 Filteroption LALL-Filter ? LALL-Filter #\par\null\par\noindent Diese Filteroption ist ein Analogon zu "RE-Filter". Es gilt entsprechend das dort Geschriebene. 6 Filteroption Leermailfilter ? Leermailfilter #\par\null\par\noindent Die MAUS erlaubt schon lange, da eine Mail oder ein Infotext o. keinen Text enth lt. Im Outfile bekommt man dergleichen in verschiedenen usen und unterschiedlichen Gruppen, wenn der Dollar abgelaufen ist. @autorefoff Leider mag jedoch CAT (zumindest bis Version 2.63) Mails ohne Inhalt @autorefon berhaupt nicht und meldet dann irgendwelche obskuren Fehler. Mit dieser Filteroption ist es m glich, leere Mails zu verhindern. Es findet ein Plausbilit tstest statt, so da die Filteroption nur auf Mails und nicht auf Infotexte u. . wirken sollte. Ein- und Auschalten der Filteroption erfolgt analog zu "Controlfilter". 6 Filteroption Quoteumbruch ? Quoteumbruch #\par\null\par\noindent Es gibt einige Frontends f r den Maus-Tausch, bei denen Abs tze beim Quoten nicht umbrochen werden. Hat man nun in der MAUS eine feste Zeilenl nge eingestellt, so f hrt das nat rlich dazu, da auch diese sehr langen Quote-Zeilen umbrochen werden. Das Quotekennzeichen (ein erzeichen und eventuell Initialen) wird jedoch bei diesem Umbruch an den neuen Zeilenanf ngen nicht erneut eingef gt. Damit sind solche Passagen nur sehr schwer als Quotes zu erkennen. Genau dasselbe Problem w rde sich normalerweise bei IO-Converter mit der Filteroption "Zeilenl nge" ergeben. Ist jedoch diese Filteroption, "Quoteumbruch", ebenfalls aktiviert, so werden Quotes, die aus maximal vier Initialen (Gro buchstaben!) und einem Gr erzeichen bestehen, erkannt und jeweils an den neuen Zeilenanfang kopiert. Ich kann nur empfehlen, den Umbruch in der MAUS abzuschalten (Zeilenl nge im N.U.D.E. auf 0 setzen) und den Umbruch IO-Converter zu berlassen. Ein- und Auschalten der Filteroption erfolgt analog zu "Controlfilter". 6 Filteroption RE-Filter ? RE-Filter #\par\null\par\noindent Im InterNet und teilweise auch im Fido ist es blich, bei Antworten ein "RE:" an den Anfang der Betreffzeile zu stellen. Teilweise folgen auch mehrere REs aufeinander oder wird die Anzahl als Potenz angegeben (z.B. "RE^5:" f r einen Kommentar in 5. Ebene). Sortiert man in CAT die Stichwortliste nach Betreffs, so w re es oft nschenswert, wenn CAT die verschiedenen Formen von "RE" ignorieren rde. Leider kann CAT (zumindest bis Version 2.63) auch das nicht. Auf der anderen Seite ist das "RE" bei funktionierender Kommentarverkettung ohnehin reichlich nutzlos. Daher ist IO-Converter in der Lage, die verschiedensten Formen von "RE" zu l schen. Lediglich, wenn nach dem Entfernen der "RE"-Formen ein leerer Betreff brig bliebe, erfolgt grunds tzlich keine Betreff-Filterung. Dabei wird auch eine eventuelle Filterung mit der Filteroption "LALL-Filter" ber cksichtigt. Die Aktivierung und Deaktivierung erfolgt wie bei der Filteroption "Controlfilter". 6 Filteroption Zeilenl ? Zeilenl #\par\null\par\noindent ber diese Filteroption kann die maximale Zeilenl nge einer Textzeile festgelegt werden. Dies ist z.B. n tzlich, um PGP-Mails vor der Verschl sselung bzw. nach der Entschl sselung zu umbrechen, weil CAT leider nicht in der Lage ist, einmal einsortierte Nachrichten selbst neu zu umbrechen. Sind mehrere Zeilenl ngenbeschr nkungen aktiv, so ist die kleinste angegebene Zeilenbreite g ltig. 5 Einzelzeichenersetzung ? Einzelzeichenersetzung #\par\null\par\noindent Die Einzelzeichenersetzung ist eine zweizeilige Definition: >@{I}Suchzeichen@{i} <@{I}Ersatzzeichen@{i} #\begin{center} #\texttt{>}\emph{Suchzeichen}\\ #\texttt{<}\emph{Ersatzzeichen}\\ #\end{center} wobei `Suchzeichen` und `Ersatzzeichen` jeweils Folgen von Zeichen sind. Jedes Zeichen aus `Suchzeichen` wird durch das darunterstehende Zeichen in `Ersatzzeichen` ersetzt. Wichtig ist dabei, da jedes Zeichen einzeln, unabh ngig von seinem Kontext betrachtet wird. So w rde z.B. mit: >0123456789 <1234567890 jede Ziffer durch ihren Nachfolger (und die "9" durch die "0") ersetzt. Ich erinnere noch einmal daran, da auch an dieser Stelle eine C-String-Interpretation stattfindet! Sollen einzelne Zeichen durch Zeichenketten (Strings) oder Zeichenketten durch einzelne Zeichen ersetzt werden, so mu r die Stringersetzung verwendet werden. Die Einzelzeichenersetzung ist erheblich schneller als jede der beiden Stringersetzungen und ben tigt nat rlich auch weniger Speicher. 5 Einfache Stringersetzung ? Stringersetzung #\par\null\par\noindent Die Zeile f r die einfache Stringersetzung ist wie folgt aufgebaut: :@{I}Suchstring@{i}=@{I}Ersatzstring@{i} #\begin{center} #\texttt{:}\emph{Suchstring}\texttt{=}\emph{Ersatzstring} #\end{center} Die Bedeutung ist dabei ganz einfach so, da jedes Auftreten des `Suchstrings` durch den `Ersatzstring` ersetzt wird. Aufgrund des einfachen Aufbaus ist es jedoch nicht m glich, da `Suchstring` oder `Ersatzstring` Zeilenumbr che enth lt und damit zeilen bergreifend arbeitet. Es k nnen nur `Suchstring`s innerhalb einer Zeile ersetzt werden. Im `Suchstring` kann auch kein Gleichheitszeichen ("=") vorkommen, da nach dem ersten Gleichheitszeichen der `Ersatzstring` beginnt. Ich erinnere noch einmal daran, da auch an dieser Stelle eine C-String-Interpretation stattfindet! Sollte diese einfache Stringersetzung aufgrund dieser Beschr nkungen nicht ausreichen, so kann man die "Erweiterte Stringersetzung" verwenden. Dadurch wird aber zumindest das Einlesen der Filterdatei langsamer, u.U. auch die Filterung selbst. 5 Erweiterte Stringersetzung ? Erweiterte Stringersetzung #\par\null\par\noindent Die erweiterte Stringersetzung ist sowohl in der Funktion als auch in der Definition nicht auf einzelne Zeilen beschr nkt. Der Aufbau ist: "@{I}Suchstring@{i}" "@{I}Ersatzstring@{i}" #\begin{center} #\texttt{\dq}\emph{Suchstring}\texttt{\dq~\dq}\emph{Ersatzstring}\texttt{\dq} #\end{center} Sowohl `Suchstring` als auch `Ersatzstring` stehen also in Anf hrungszeichen. Zwischen dem Schlu zeichen des `Suchstring`s und dem Anf hrungszeichen des `Ersatzstring`s steht mindestens ein Leerzeichen. Zeilenumbr che innerhalb von `Suchstring` und `Ersatzstring` werden zun ignoriert. Die Strings werden jedoch als C-Strings interpretiert. Sollen tats chlich Zeilenumbr che im `Suchstring` oder `Ersatzstring` auftreten, so nnen diese explizit mit "\n" gesetzt werden. heres zu C-Strings ist dem entsprechenden Kapitel zu entnehmen. Die erweiterte Stringersetzung ist zwar wesentlich m chtiger als die einfache Stringersetzung. Auf der anderen Seite, dauert das Einlesen und Analysieren entsprechender Filter wesentlich l nger. 4 FILTER ? FILTER Die Filterspezifikation sieht folgenderma en aus: FILTER=@{I}Filtername@{i} #\begin{center} #\texttt{FILTER=}\emph{Filtername} #\end{center} Filter von Typ FILTER werden auch "freie Filter" genannt. Der Name kommt daher, da sie selbst nicht unmittelbar, sondern nur mittelbar, also durch Aktivierung in anderen Filtern, g ltig werden k nnen. Freie Filter dienen in erster Linie dazu, Filter f r verschiedene Aufgaben zu definieren, die dann sp ter innerhalb von typisierten Filtern aktiviert werden. Freie Filter erm glichen damit eine klarere Strukturierung der Filterdatei. Sie erleichtern die Fehlereingrenzung und helfen, Speicher zu sparen. Ich kann ihre Verwendung somit nur empfehlen. 4 ALLE ? ALLE Die Filterspezifikation besteht nur aus dem Schl sselwort: ALLE #\begin{center} #\texttt{ALLE} #\end{center} Ein ALLE-Filter ist immer g ltig, das hei t, er wirkt auf alle Mails. ber den ALLE-Filter k nnen z.B. Optionen eingestellt werden, die immer gelten sollen. Auch immer aktive Zeichen- oder Stringersetzungen sind denkbar. 4 GRUPPE ? GRUPPE Die Filterspezifikation besteht aus dem Schl sselwort und einem regul ren Ausdruck: GRUPPE=@{I}Gruppenausdruck@{i} #\begin{center} #\texttt{GRUPPE=}\emph{Gruppenausdruck} #\end{center} Ermittelt IO-Converter anhand des Mailheaders oder u.U. auch mit Hilfe des Infoblocks, da es sich um eine ffentliche Mail handelt, so wird der `Gruppenausdruck` mit dem Gruppennamen verglichen. Pa t der Gruppenname auf den `Gruppenausdruck`, so wird der Filter g ltig. WICHTIG: Der `Gruppenausdruck` wird zun chst als C-String interpretiert. Damit mu ein Backslash ("\") also bereits mit einem Backslash gequotet werden, ehe er als regul rer Ausdruck interpretiert wird. Am Ende der Mail wird der Filter wieder deaktiviert. Die MAUS verlangt nicht, da bei Kommentaren (sowohl auf ffentliche als auch auf private Mails) die Zielgruppe (bzw. der Empf nger) angegeben ist. Zumindest bis Version 2.63 verzichtet CAT darauf, diese Information in das Outfile zu schreiben. Bei diesen Mails kann die Gruppe von IO-Converter nur erkannt werden, wenn sie im Infoblock spezifiziert ist. Ist ein Eintrag im Infoblock vorhanden, so wird derzeit immer dieser an Stelle eines Eintrags im Mailheader verwendet. 4 PERSON ? PERSON Die Filterspezifikation besteht aus dem Schl sselwort und einem regul ren Ausdruck: PERSON=@{I}Userausdruck@{i} #\begin{center} #\texttt{PERSON=}\emph{Userausdruck} #\end{center} PERSON ist eine Zusammenfassung von Empf nger und Absender, in fr heren Versionen hie dieses Schl sselwort noch "USER" (und fiel damit auf wie ein Ro bollen auf der Autobahn). PERSON funktioniert analog zu GRUPPE, jedoch f r pers nliche Mails. Das erste Kriterium ist der Absender, das zweite der Empf nger. Da in Outfiles immer nur der Empf nger eingetragen wird, kann so eine Unterscheidung getroffen werden. 4 WEGEN ? WEGEN Die Filterspezifikation besteht aus dem Schl sselwort und einem regul ren Ausdruck: WEGEN=@{I}Betreffausdruck@{i} #\begin{center} #\texttt{WEGEN=}\emph{Betreffausdruck} #\end{center} Erkennt IO-Converter eine Betreffzeile, so wird diese zun chst aufgrund der eventuell bereits aktiven Filteroptionen LALL-Filter und RE-Filter behandelt. Anschlie end wird gepr ft, ob der Betreffausdruck dem Betreff entspricht. Ist dies der Fall, wird der WEGEN-Filter g ltig. Will man einen Filter, der auf den Betreff vor der Behandlung durch einen LALL- oder RE-Filter aktiv wird, so mu man sich mit dem Schl sselwort ZEILE behelfen. 4 ZEILE ? ZEILE Die Filterspezifikation besteht aus dem Schl sselwort und einem regul ren Ausdruck: ZEILE=@{I}Zeilenausdruck@{i} #\begin{center} #\texttt{ZEILE=}\emph{Zeilenausdruck} #\end{center} Der ZEILE-Filter ist die allgemeinste Form. Theoretisch k nnten PERSON und GRUPPE auch durch einen Zeilenfilter ausgedr ckt werden. Allerdings nnten dann einige Zusatzfunktionen wie z.B. die Anrede nicht alleine damit arbeiten. Beim ZEILE-Filter werden komplette Outfile-Zeilen mit dem `Zeilenausdruck` verglichen, wobei er zun chst ebenfalls als C-String interpretiert wird. Es wird jeweils genau eine Outfile-Zeile verglichen! WICHTIG: Es handelt sich dabei nicht um Text-Zeilen sondern um Outfile-Zeilen. Im Outfile beginnt jede Textzeile mit einem Doppelpunkt (":"). Welche Zeilen ansonsten z.B. im Mailheader vorkommen k nnen, ist der TAUSCH-Dokumentation zu entnehmen (siehe tau_doku.hyp von Uwe Ohse). 2 Der Infoblock ? Infoblock IO-Converter wertet au er dem Mailheader noch einige spezielle Zeilen aus, die dazu am Anfang des Mailtextes stehen m ssen. Aufgrund ihres Informationsgehalts werden diese Zeilen "Infoblock" genannt. Vor dem Infoblock darf kein Text und keine Leerzeile stehen. Ausnahmen sind Verkettungszeilen, die entweder mit "Kommentar zu" oder mit einem Minuszeichen beginnen, "Reply-To:"-Zeilen und "Follow-Up:"-Zeilen, denen jeweils maximal eine Leerzeile folgen darf. IO-Converter macht hierbei keine Unterscheidung zwischen Klein- und Gro buchstaben. Der Infoblock wird nach seiner Auswertung aus der Mail entfernt. Steht nach dem Infoblock eine Leerzeile so wird diese ebenfalls entfernt. Alle weiteren Leerzeilen bleiben jedoch erhalten. Alle Angaben im Infoblock sind optional, das hei t, der Infoblock mu nicht zwingend alle Zeilen enthalten. Er kann auch ganz entfallen. In erster Linie ist der Infoblock dazu gedacht, bei Kommentaren den Gruppennamen bzw. den Empf nger "nachzureichen". Folgende Zeilen sind definiert, wobei die Leerzeichen nach dem Stern und nach dem Doppelpunkt zwingend sind, und die Zeilen linksb ndig mit dem Stern beginnen m ssen! Die Reihenfolge der Zeilen innerhalb des Infoblocks ist jedoch beliebig. #\vspace{1ex}\noindent% * Keine Anrede Die Anrede soll in jedem Fall unterbunden werden. Dies ist n tzlich, wenn die Anrede aus irgendeinem Grund ausnahmsweise von Hand in den Text eingebaut wird oder in Kombination mit "* Kein Gru " beim Kopieren von Mails. #\vspace{1ex}\noindent% * Kein Gru Der Schlu satz soll in jedem Fall unterbunden werden. Dies ist n tzlich, wenn der Schlu satz aus irgendeinem Grund von Hand in den Text eingebaut wird oder in Kombination mit "* Keine Anrede" beim Kopieren von Mails. #\vspace{1ex}\noindent% * Kein Footer Der Footer soll in jedem Fall unterbunden werden. Dies ist z.B. beim Kopieren von Mails n tzlich. #\vspace{1ex}\noindent% * Gruppe: `argument` Was sich hinter dem Argument verbirgt, spielt keine Rolle. Das Argument wird direkt f r den Vergleich mit GRUPPE-Filtern verwendet. Voraussetzung ist allerdings, da die Mail nicht bereits eindeutig als pers nliche Mail identifiziert wurde. Ist die Zeile nicht vorhanden, wird statt dessen die Information aus dem Mailheader verwendet. #\vspace{1ex}\noindent% * Von: `argument` Was sich hinter dem Argument verbirgt, spielt keine Rolle. Das Argument wird direkt f r den Vergleich mit PERSON-Filtern verwendet. Ist die Zeile nicht vorhanden, wird statt dessen die Information aus dem Mailheader verwendet. #\vspace{1ex}\noindent% * An: `argument` Was sich hinter dem Argument verbirgt, spielt zun chst keine Rolle. Das Argument wird direkt f r den Vergleich mit PERSON-Filtern verwendet (wenn kein Absender auszumachen ist, mit dieser Einschr nkung k nnen IN- und Outfile unterschieden werden). Voraussetzung ist jedoch, da Mail nicht bereits eindeutig als Gruppenmail identifiziert wurde. Ist die Zeile nicht vorhanden, wird statt dessen die Information aus dem Mailheader verwendet. Es wird empfohlen als Argument die vollst ndige Mailadresse des Empf ngers zu verwenden. #\vspace{1ex}\noindent% * Name: `argument` Das Argument wird f r die Anrede verwendet. Dabei sind folgende Varianten m glich: #\begin{itemize} #\item Enth"alt das Argument einen Klammeraffen ("`@"'), wird davon # ausgegangen, da"s es sich um eine Mailadresse handelt. Nach dieser # Adresse wird dann in der Nickname-Datei gesucht (sehr schnelle # Halbierungssuche). Ist ein Nickname eingetragen, wird dieser f"ur # die Anrede verwendet. Ist kein Nickname, aber ein Realname # eingetragen, so wird dieser f"ur die Anrede verwendet. #\item Enth lt das Argument keinen Klammeraffen ("`@"'), wird davon # ausgegangen, da es sich um einen Realname handelt. Nach diesem # Realname wird in der Nickname-Datei gesucht (langsame, # sequentielle Suche). Ist kein entsprechender Eintrag vorhanden, # so wird der Realname unver ndert verwendet. Ist ein Eintrag # vorhanden, der auch einen Nickname enth lt, so wird der Nickname # verwendet. Ist ein Eintrag ohne Nickname vorhanden, so wird der # Realname in der Schreibweise der Nickname-Datei verwendet. #\end{itemize} a) Enth lt das Argument einen Klammeraffen ('@@'), wird davon ausgegangen, da es sich um eine Mailadresse handelt. Nach dieser Adresse wird dann in der Nickname-Datei gesucht (sehr schnelle Halbierungssuche). Ist ein Nickname eingetragen, wird dieser f r die Anrede verwendet. Ist kein Nickname, aber ein Realname eingetragen, so wird dieser f r die Anrede verwendet. b) Enth lt das Argument keinen Klammeraffen ('@@'), wird davon ausgegangen, da es sich um einen Realname handelt. Nach diesem Realname wird in der Nickname-Datei gesucht (langsame, sequentielle Suche). Ist kein entsprechender Eintrag vorhanden, so wird der Realname unver ndert verwendet. Ist ein Eintrag vorhanden, der auch einen Nickname enth lt, so wird der Nickname verwendet. Ist ein Eintrag ohne Nickname vorhanden, so wird der Realname in der Schreibweise der Nickname-Datei verwendet. Ist keine "* Name: "-Zeile vorhanden, so wird statt dessen die "* An: "-Zeile verwendet. Ist auch keine "* An: "-Zeile vorhanden, so wird die Adresse aus dem Mailheader verwendet. Entsprechend dem Kapitel "Info-Zeilen-Formate in CAT", empfiehlt Richard, den Realname als Argument zu verwenden. Interessant ist vielleicht noch, da diverse deutsche, franz sische und englische Adelstitel automatisch erkannt und entsprechend dem Nachnamen zugeschlagen werden. Probleme in diesem Bereich kann man durch Definition von Nicknames umgehen. Au erdem kann man sich gerne an mich wenden. Jelly Cat kann ab Version 1.1 den Infoblock brigens vollautomatisch setzen. In diesem Fall wird bei "* Name: " die Empf nger-Adresse eingesetzt. Jelly Cat setzt nat rlich nur solche Zeilen ein, die nicht bereits vorhanden sind. Im einzelnen sind das normalerweise: @#|l|c|c|c| #\hline # Mailtyp & An & Name & Gruppe \\ #\hline # PM (neu) & nein & nein & nein \\ # PM-Kommentar & ja & nein & nein \\ # PM-Kommentar auf AM & nein & nein & nein \\ # AM (neu) & nein & ja & nein \\ # AM-Kommentar & nein & ja & ja \\ # AM-Kommentar in Fremdgruppen & nein & ja & nein \\ # Kopie & nein & nein & nein \\ # Weiterleitung & nein & nein & nein \\ #\hline Mailtyp | An | Name | Gruppe ------------------------------|--------|--------|-------- PM (neu) | nein | nein | nein PM-Kommentar | ja | nein | nein PM-Kommentar auf AM | nein | nein | nein AM (neu) | nein | ja | nein AM-Kommentar | nein | ja | ja AM-Kommentar in Fremdgruppen | nein | ja | nein Kopie | nein | nein | nein Weiterleitung | nein | nein | nein Bei "Name" wird jeweils die Adresse des kommentierten Users eingesetzt. Wenn man sich also selbst kommentiert w re es angebracht, entweder von Hand einen anderen Namen zu setzen oder die Anrede abzuschalten. Im Fall der neuen ffentlichen Mail d rfte es unm glich sein, tats chlich eine entsprechende Infozeile zu setzen. #\vspace{1ex}\noindent brigens kann man zwei verschiedene Varianten des Infoblocks leicht mit Hilfe des Infozeilen-Mechanismus von CAT nahezu automatisch setzen. Wie die Infozeilen in CAT eingestellt werden k nnen, ist der CAT-Anleitung zu entnehmen (siehe auch das Kapitel "Info-Zeilen-Formate in CAT"). 2 Verkettungszeilen im Mailtext ? Verkettungszeilen ? Verkettungszeile Soll eine Verkettung gruppen bergreifend oder in einer sogenannten Wildwest-Form erfolgen, so mu die Verkettungsinformation physikalisch in der ersten Zeile stehen, also noch vor einem eventuellen Info-Block. IO-Converter sollte keinesfalls eine Anrede oder hnliches vor die Verkettungszeile setzen, damit diese beim Empf nger noch einwandfrei erkannt wird. Au erdem darf die Zeile nicht durch Filterung verf lscht werden. IO-Converter erkennt zwei Arten von Verkettungszeilen. Zum einen wird eine solche angenommen, wenn die erste Zeile mit einem Minuszeichen beginnt, zum anderen, wenn die erste Zeile mit "Kommentar zu" beginnt. Das sind die Verkettungsarten, die CAT normalerweise einsetzt. Auf diese Verkettungszeile darf dann noch eine Leerzeile (hier sind auch keine Leerzeichen erlaubt) folgen. Derart erkannte Verkettungszeilen werden von IO-Converter automatisch in einen gesch tzten Block gewandelt. Dies ist auch dann der Fall, wenn die Option '-Filterschutz' nicht aktiviert ist. Auf diese Weise ist sichergestellt, da Wildwest- bzw. gruppen bergreifende Verkettung durch IO-Converter nicht zerst rt werden. Ebenso wird mit "Reply-To:"- und "Follow-Up:"-Zeilen verfahren. 2 C-String-Interpretation ? C-String ? C-Strings Bei einem C-String hat der Backslash ("\") eine Sonderbedeutung, er leitet einen Teilstring ein, der speziell interpretiert wird. Folgende Sonderfolgen existieren: @#|l|r|c@{~}p{.7\textwidth}| #\hline #Teilstring & HEX && Bedeutung\\\hline #\texttt{\symbol{92}'} & 27 & \texttt{'} & (Hochkomma, Apostroph)\\ #\texttt{\symbol{92}\dq} & 22 & \texttt{\dq} & (Anf"uhrungszeichen)\\ #\texttt{\symbol{92}?} & 3F & \texttt{?} & (Fragezeichen)\\ #\texttt{\symbol{92}\symbol{92}} & 5C & \texttt{\symbol{92}} & # (Backslash)\\ #\texttt{\symbol{92}a} & 07 && (Systemglocke)\\ #\texttt{\symbol{92}b} & 08 && (Backspace)\\ #\texttt{\symbol{92}f} & 0C && (Seitenvorschub)\\ #\texttt{\symbol{92}n} & 0A && (Wagenr"ucklauf+Zeilenvorschub)\\ #\texttt{\symbol{92}r} & 0D && (Wagenr"ucklauf)\\ #\texttt{\symbol{92}t} & 09 && (horizontaler Tabulator)\\ #\texttt{\symbol{92}v} & 0B && (vertikaler Tabulator)\\ #\texttt{\symbol{92}}\emph{ZZZ} &&& \emph{ZZZ} = 1 bis 3 Oktalziffen, es # wird das ASCII-Zeichen mit dem # entsprechenden Oktalwert # eingesetzt.\\ #\texttt{\symbol{92}x}\emph{HH} &&& \emph{HH} = 1 bis n # Hexadezimalziffern, es wird das # ASCII-Zeichen mit dem entsprechenden # Hexadezimalwert modulo 256 # eingesetzt.\\\hline Teilstring | HEX | Bedeutung ------------|-----|------------------------------------------- \' | 27 | ' (Hochkomma, Apostroph) \" | 22 | " (Anf hrungszeichen) \? | 3F | ? (Fragezeichen) \\ | 5C | \ (Backslash) \a | 07 | (Systemglocke) \b | 08 | (Backspace) \f | 0C | (Seitenvorschub) \n | 0A | (Wagenr cklauf+Zeilenvorschub) \r | 0D | (Wagenr cklauf) \t | 09 | (horizontaler Tabulator) \v | 0B | (vertikaler Tabulator) \ZZZ | | ZZZ = 1 bis 3 Oktalziffen, es wird das | | ASCII-Zeichen mit dem entsprechenden | | Oktalwert eingesetzt. \xHH | | HH = 1 bis n Hexadezimalziffern, es wird | | das ASCII-Zeichen mit dem entsprechenden | | Hexadezimalwert modulo 256 eingesetzt. In allen anderen F llen wird der Backslash einfach ignoriert, also einfach weggelassen. 2 Die Nicknamedatei ? Nicknamedatei Bei der Nicknamedatei handelt es sich um eine Konfigurationsdatei f Anreden mit Spitznamen und allem, was rundherum dazugeh rt. Die Datei ist hnlich der Filterdatei in verschiedene Bl cke unterteilt, die jeweils mit einem Schl sselwort eingeleitet werden. Zur deutlicheren Unterscheidung haben die Kommentare in Nicknamedateien einen anderen Aufbau als in den Filterdateien. Die Schl sselworte stehen jeweils als einzelne Worte innerhalb einer Zeile. Die maximal erlaubte Zeilenl nge liegt bei 16382 Zeichen. Folgende Schl sselworte werden derzeit erkannt: @ANREDEN, @GR @NAMEN, @GRUPPEN, @ADRESSDATEI, @SONST, @FOOTER, @ENDE. Beginnt eine Zeile mit einem Klammeraffen, gefolgt von einem Leerzeichen, einem Tabulator oder einem Zeilenumbruch, so handelt es sich um einen Kommentar. Eine Leerzeile, die auch keine Leerzeichen oder Tabulatoren enth lt, wird ebenfalls als Kommentar ignoriert. Kommentare sind berall au er unmittelbar nach @SONST oder @ADRESSDATEI erlaubt. Innerhalb von Adre dateien sind ebenfalls keine Kommentarzeilen erlaubt. Hinweis: Enth lt eine Nicknamedatei kein Schl sselwort, so wird sie gelesen und f r richtig befunden. Ist die angegebene Nicknamedatei (bzw. "nickname.nik") nicht vorhanden, so wird eine Warnung ausgegeben. erdem werden Fehler in der Nicknamedatei (au er bei "-O 0") immer angemahnt. Sie f hren jedoch zu keinem Programmabbruch. IO-Converter liegt eine Beispiel-Nicknamedatei "nickname.nik" bei, mit der die Verwendung demonstriert wird. 3 Kommentarzeilen in der Nicknamedatei ? Kommentarzeilen Innerhalb der Nicknamedatei sind Kommentarzeilen m glich. Zun chst wird alles, was vor dem ersten Schl sselwort steht, und alles, was nach dem Schl sselwort @ENDE steht, als Kommentar betrachtet. @autorefoff ber hinaus gelten Leerzeilen ohne jeglichen Inhalt, also auch ohne @autorefon Leerzeichen oder Tabulatoren, als Kommentarzeilen. Alle Zeilen, die mit einem Klammeraffen ("@"), gefolgt von einem Leerzeichen, Tabulator oder Zeilenumbruch, beginnen, gelten ebenfalls als Kommentarzeilen. Kommentarzeilen sind berall erlaubt, au er unmittelbar nach dem Schl sselwort @SONST, unmittelbar nach dem Schl sselwort @ADRESSDATEI und innerhalb von Adre dateien. 3 Das Nickname-Schl sselwort @ANREDEN ? @ANREDEN Die folgenden Zeilen, die als C-String interpretiert werden, definieren Anreden. Jede Zeile definiert genau eine Anrede. Die Anreden haben folgenden Aufbau: #\begin{center} # \emph{Stufe} \emph{Anrede} #\end{center} @{I}Stufe Anrede@{i} wobei `Stufe` eine Zahl zwischen 0 und 31 ist. Diese Zahl stellt eine Art Gru stufe dar. Wozu die Stufen dienen, ist bei @NAMEN, @ADRESSDATEI bzw. @SONST zu sehen. Es ist auch m glich, einer Anrede mehrere Stufen zuzuweisen. Es sind einzelne Stufen oder Bereiche (z.B. "2..5" oder "..5" oder "2..") erlaubt. Mehrere Angaben k nnen, durch Kommata voneinander getrennt, kombiniert werden (z.B. "2,4..6"). Steht vor der ersten Stufe ein Caret, so bedeutet dies, da die Anrede allen Stufen au er den angegeben zugeh rt. Die eigentliche Anrede beginnt bei dem ersten Zeichen, das nicht diesem Aufbau gehorcht, oder nach dem ersten Leerzeichen. Die `Anrede` ist die eigentliche Anrede. Innerhalb der `Anrede` sind besondere Ersatzvariablen m glich, die dann bei der eigentlichen Anrede entsprechend ersetzt werden: @#|l|l|p{.7\textwidth}| #\hline #Variable & Bedeutung & Ersatz\\\hline #\texttt{\$N} & Name & Nickname oder der kompletter Realname\\\hline #\texttt{\$F} & Firstname & Nickname oder der ermittelte Vorname\\\hline #\texttt{\$L} & Lastname & Nickname oder der ermittelte Nachname\\\hline Variable | Bedeutung | Ersatz ----------|-----------|------------------------------ $N | Name | Nickname oder der komplette | | Realname $F | Firstname | Nickname oder der ermittelte | | Vorname $L | Lastname | Nickname oder der ermittelte | | Nachname Es ist au erdem m glich, Anreden ohne Stufe zu definieren. Diese werden dann - nach M glichkeit - an Stelle der internen Anreden verwendet, wenn kein Name ermittelt werden kann. Bei diesen Anreden ist es somit nicht glich und nicht sinnvoll Ersatzvariablen zu verwenden. Anreden ohne Stufe sind nicht gleichbedeutend mit Anreden der Stufe 0! Die maximale Anzahl der definierbaren Anreden ist nur vom freien Speicher abh ngig. Die Auswahlgeschwindigkeit sinkt jedoch mit zunehmender Anzahl (linear). Es sind an beliebiger Stelle Kommentarzeilen erlaubt. 3 Das Nickname-Schl sselwort @GR ? @GR Dieses Schl sselwort leitet die Schlu e (Schlu tze) ein. Die Zeilen werden als C-Strings interpretiert. Die Zeilen sind wie bei @ANREDEN aufgebaut, es sind dieselben Ersatzvariablen m glich. Wurde eine @ANREDEN-Begr ung verwendet, so werden automatisch nur Schlu e mit derselben Stufe zuf llig ausgew hlt. Wurde keine @ANREDEN-Begr ung verwendet, so findet die zuf llige Auswahl unter den Schlu en der @SONST-Stufe statt. Ist kein entsprechender Schlu definiert, so wird auch keiner gesetzt. Es ist also zu empfehlen, zu jeder bei @ANREDEN verwendeten Stufe und zu mindestens einer @SONST-Stufe mindestens einen Schlu zu definieren. Es ist au erdem m glich, Schlu e ohne Stufe zu definieren. Diese werden dann - nach M glichkeit - verwendet, wenn kein Name ermittelt werden konnte und auch keine @SONST-Stufe f r diesen Fall angegeben ist. e ohne Stufe sind nicht gleichbedeutend mit Gr en der Stufe 0! Es sind an beliebigen Stellen Kommentarzeilen erlaubt. 3 Das Nickname-Schl sselwort @NAMEN ? @NAMEN Es folgen zeilenweise Namenseintr ge, die als C-Strings interpretiert werden. Sie besitzen folgenden Aufbau: #\begin{center} #\emph{Adresse}\cmd{t}\emph{Bemerkung}\cmd{t}\emph{Realname}\cmd{t}% #\emph{Nickname}\cmd{t}\emph{Stufe}\cmd{t}\emph{Footer} #\end{center} @{I}Adresse@{i}\t@{I}Bemerkung@{i}\t@{I}Realname@{i}\t@{I}Nickname@{i}\t@{I}Stufe@{i}\t@{I}Footer@{i} wobei statt der Zeichenkette `\t` auch ein echter Tabulator verwendet werden kann. `Adresse` steht f r eine Mailadresse. Dieser Eintrag ist zwingend. Beim Vergleich wird nicht zwischen Gro - und Kleinbuchstaben unterschieden. Regul re Ausdr cke sind an dieser Stelle jedoch nicht m glich. `Bemerkung` kann frei verwendet werden. Der dort eingesetzte Text wird beim Einlesen der Nicknamedatei ignoriert. `Realname` gibt den tats chlichen Namen des zur `Adresse` geh renden Empf ngers an. Dies ist z.B. bei InterNet-Adressen, bei denen der Name u.U. nicht direkt der Adresse entnommen werden kann, sehr n tzlich. Bei der sp teren Betrachtung der Realnames wird davon ausgegangen, da alles vor dem letzten Leerzeichen der Vorname und alles danach der Nachname ist (dar ber hinaus findet noch eine Erkennung auf Adelstitel statt). Wenn kein `Realname` angegeben ist, wird versucht, einen Namen aus der Adresse zu gewinnen. Bei MAUS- und Fido-Adressen ist das kein Problem. Bei Internet-Adressen ist es jedoch nur in den seltensten F llen korrekt glich (z.B. X500). `Nickname` steht f r einen Spitznamen. Ist er angegeben, so wird er bei den Anreden anstelle aller Ersatzvariablen verwendet. Fehlt er, so wird der `Realname` wichtig. `Stufe` gibt an, welche Stufen der Anreden (und Schlu tze) verwendet werden d rfen. Es wird zuf llig eine Anrede (und ein Schlu satz) aus denen der erlaubten Stufen ausgew hlt. Es sind entweder einzelne Stufen oder Bereiche (z.B. "2..5" oder "..5" oder "2..") erlaubt. Mehrere Angaben k nnen, durch Kommata voneinander getrennt, kombiniert werden (z.B. "2,4..6"). Steht vor der ersten Stufe ein Caret, so bedeutet dies, alle Stufen au er den angegeben verwendet werden d rfen. `Footer` gibt an, aus welcher Datei der Footer gelesen werden kann. An dieser Stelle darf entweder ein Footer-Alias (siehe @FOOTER) oder direkt der Dateiname (Backslashverdoppelung wegen Interpretation als C-String nicht vergessen!) verwendet werden. Einzelne Felder im Namenseintrag d rfen leer sein. Der Namenseintrag endet am Zeilenende. Es darf nur entweder @NAMEN oder @ADRESSDATEI verwendet werden. Es sind an beliebigen Stellen Kommentarzeilen erlaubt. 3 Das Nickname-Schl sselwort @GRUPPEN ? @GRUPPEN Es folgen zeilenweise Gruppeneintr ge, die als C-Strings interpretiert werden. Sie besitzen folgenden Aufbau: #\begin{center} #\emph{Gruppe}\cmd{t}\emph{Stufe}\cmd{t}\emph{Footer} #\end{center} @{I}Gruppe@{i}\t@{I}Stufe@{i}\t@{I}Footer@{i} wobei statt der Zeichenkette `\t` auch ein echter Tabulator verwendet werden kann. Es werden damit analog zu @NAMEN und @SONST Voreinstellungen f einzelne Gruppen getroffen. Diese Voreinstellungen gelten immer dann, wenn kein entsprechender Eintrag bei @NAMEN gefunden wurde. F Schlu e gilt er au erdem auch, wenn kein Name bzw. kein Empf ermittelt werden konnte. r Gruppen, f r die keine Voreinstellung getroffen wurde oder die Anrede- und Gru -Stufe 0 ist, werden die Einstellungen von @SONST verwendet. Die Verwendung einer Pseudogruppe "Pers nliche" ist m glich. Beim Vergleich der angegebenen Gruppennamen mit dem Gruppennamen aus der Mail wird nicht zwischen Gro -/Kleinschreibung unterschieden. Au erdem werden alle Zeichen au er Buchstaben und Ziffern - entsprechend der aktuellen Maus-Dokumentation - gleich behandelt (CAT, Version 2.63, macht das leider nicht). Die Zeile wird als C-String interpretiert (Backslash-Verdoppelung z.B. bei Dateinamen nicht vergessen!). `Gruppe` ist jedoch kein regul Ausdruck! 3 Das Nickname-Schl sselwort @ADRESSDATEI ? @ADRESSDATEI In der n chsten Zeile mu ein Dateiname folgen. Aus dieser Datei werden dann die Namenseintr ge gelesen. Dabei werden die Zeilen nicht als C-Strings interpretiert, sondern unver ndert bernommen. Das Tabulatorzeichen mu also als solches enthalten sein. Vorteil dieser Methode ist, da direkt die CAT-Adre datei verwendet werden kann. Die einzelnen Felder ab `Bemerkung` k nnen dort in der Hinweiszeile unter dem Adre eintrag angegeben werden. Das Tabulatorzeichen ist im CAT-Dialog mit CTRL-I einzugeben. Es darf nur entweder @NAMEN oder @ADRESSDATEI verwendet werden. Derzeit ist auch nur eine Adre datei m glich und erlaubt. Die Zeile, die unmittelbar auf die Zeile mit dem Schl sselwort @ADRESSDATEI folgt, darf keine Kommentarzeile sein. Sie w rde in jedem Fall als Argument (also als Name der Adre datei) interpretiert. Danach rfen beliebig viele Kommentarzeilen folgen. 3 Das Nickname-Schl sselwort @SONST ? @SONST Es folgt eine Zeile mit dem Aufbau: #\begin{center} #\emph{Stufe}\cmd{t}\emph{Footer} #\end{center} @{I}Stufe@{i}\t@{I}Footer@{i} Diese enth lt Voreinstellungen f r die Anrede- und Gru -Stufe und die Footerdatei. Diese werden immer dann verwendet, wenn ein Name nicht in der Nickname- oder Adre datei eingetragen ist, oder im Eintrag keine `Stufe` bzw. kein `Footer` angegeben wurde. Die Zeile, die unmittelbar auf die Zeile mit dem Schl sselwort @SONST folgt, darf keine Kommentarzeile sein. Sie w rde in jedem Fall als Argument (also als voreingestellte Stufe und Footerdatei) interpretiert. Danach d rfen beliebig viele Kommentarzeilen folgen. Die Zeile wird als C-String interpretiert (Backslash-Verdoppelung bei Dateinamen nicht vergessen!). 3 Das Nickname-Schl sselwort @FOOTER ? @FOOTER Es folgen Zeilen mit Alias-Definitionen f r Footernamen. Die Zeilen haben folgenden Aufbau: #\begin{center} #\emph{Alias}\cmd{t}\emph{Dateiname} #\end{center} @{I}Alias@{i}\t@{I}Dateiname@{i} Das "\t" steht f r einen Tabulator, der entweder genau in dieser Form oder auch als echter Tabulator eingegeben werden kann. Die Zeilen werden als C-Strings interpretiert. Der Alias kann auch entfallen, dann sind Alias und Dateiname identisch. Der Alias kann berall dort verwendet werden, wo normalerweise der Name der Footerdatei stehen m 4 Die Footerdatei ? Footerdatei Jede Zeile der Footerdatei stellt einen einzelnen Footer dar. Jede Zeile wird einzeln als C-String interpretiert. Durch Verwendung von "\n" nnen somit auch mehrzeilige Footer definiert werden. Ein kleines Footerbeispiel ist in dieser Anleitung zu finden. Hinweis: Footer sind im MausNet nicht gern gesehen. Beschr nken Sie sich besser auf das Notwendigste. Ich selbst mag Footer, die st ndig gleich und/oder riesig gro sind, auch absolut nicht! Kommentare sind in Footerdateien nicht m glich. F r die Konvertierung der Spr chedatei von INTool in eine Footerdatei f r IO-Converter liegt das Programm `footconv.ttp` bei. 5 Das Programm 'footconv.ttp' ? footconv.ttp #\par\null\par\noindent Das Programm `footconv.ttp` kann Spr chedateien im Format des INTools in Footerdateien f r IO-Converter umwandeln und umgekehrt. @autorefoff Der Aufruf geschieht mit: @autorefon #\begin{center} #\verb|footconv| IO-Converter \emph{Spr"uchedatei} \emph{Footerdatei} #\end{center} footconv IO-Converter @{I}Spr chedatei@{i} @{I}Footerdatei@{i} r die Umwandlung einer Spr chedatei in eine Footerdatei und mit: #\begin{center} #\verb|footconv| IN-Tool \emph{Footerdatei} \emph{Spr"uchedatei} #\end{center} footconv IN-Tool @{I}Footerdatei@{i} @{I}Spr chedatei@{i} r die Umwandlung einer Footerdatei in eine Spr chedatei. Achtung: Wird eine Spr chedatei in eine Spr chedatei oder eine Footerdatei in eine Footerdatei gewandelt, so wird diese mit gr Wahrscheinlichkeit besch digt und kann nicht verlustfrei durch ckwandlung wiederhergestellt werden. 3 Das Nickname-Schl sselwort @ENDE ? @ENDE Alles, was nach diesem Schl sselwort kommt, wird ignoriert. Das Schl sselwort ist jedoch nicht optional, sondern mu vorhanden sein! Ausnahmen sind nur Dateien in denen berhaupt keines der Schl sselw vorkommt. 2 Beispiele ? Beispiele In den folgenden Kapiteln sind zwei Beispiele f r Filterdateien und ein Beispiel f r eine Nicknamedatei, sowie ein Beispiel f r eine Footerdatei angegeben. Die beiden Filterdateien stammen urspr nglich von Richard Kampmann, meinem nervendsten - und damit besten - Beta-Tester. "infile.cnf" ist als Filterdatei f r Infiles, "outfile.cnf" - wer h das gedacht - als Filterdatei f r Outfiles vorgesehen. Da IO-Converter ohnehin nach einer Datei "nickname.nik" sucht, hat die Beispiel-Nicknamedatei hier ebenfalls diesen Namen. Die Footerdatei tr gt im Beispiel den Namen "footer.txt". 3 Die Beispiel-Nicknamedatei 'nickname.nik' ? nickname.nik Hier wird eine Nicknamedatei beispielhaft eingef hrt und erl utert. Die Zeilen aus der Nicknamedatei sind dabei in einer anderen Schrift hervorgehoben bzw. einger @(#) NickNames-Archiv Alles, was hier vor dem @ANREDEN steht, wird einfach ignoriert. Diese beiden Zeilen werden `Header` genannt. Sie werden beim Einlesen der Nicknamedatei ignoriert. @ Die Anreden Drei Kommentarzeilen @ANREDEN Das Schl sselwort @ANREDEN leitet die Anreden ein: 00 Sehr geehrte Frau $L!\n 01 Sehr geehrter Herr $L!\n 02 Hallo $F,\n 03 Morg n $F,\n 02 Hi $F,\n 02 Servus $F,\n Bei den Anreden wurde zun chst eine zweistellige Stufe-Nummer angegeben. Theoretisch h tte dabei die f hrende Null entfallen k nnen. Sie dient lediglich der bersicht. Das Leerzeichen, das auf die Stufe-Nummer folgt, ist ebenfalls nicht zwingend. Es wird jedoch lediglich das erste Leerzeichen berlesen. Da automatisch noch ein Zeilenende zugef gt wird, steht der letzte Zeilenumbruch "\n" jeweils f r eine Leerzeile. @GR 2..3 Tsch ,\nMarkus 2,3 Bye,\nMarkus 2,3 Ciao,\nMarkus 03 Wirsing,\nMarkus ..1 Mit freundlichen Gr en\nMarkus Kohm Hierbei handelt es sich um die Schlu e. Es ist ebenfalls eine Stufe angegeben. F r Anrede und Schlu wird immer dieselbe Stufe verwendet. Damit ist sichergestellt, da Anrede und Schlu immer zusammenpassen. Auf der anderen Seite kann es so notwendig sein, da mehreren Stufen zugewiesen wird (siehe die ersten drei und den letzen Gru Nach dem Schlu soll keine Leerzeile folgen. Das Zeilenende wird automatisch zugef @NAMEN Markus Kohm @ KA2\tIO-Converter-Autor\t\tGro er Meister\t1..3 Richard Kampmann @ UN\t\t\tGenialer Betatester\t1,2\tBl Es sind zwei Adressen definiert. Da es sich um MausNet-Adressen handelt, kann der Realname entfallen. Er wird beim Einlesen der Datei aus der Adresse gewonnen. Es d rfen Anreden und Schlu tze der ersten bis dritten bzw. der ersten und zweiten Stufe gew hlt werden. Bei Richard Kampmann soll ein Footer aus der Footerdatei mit dem Alias "Bl dfug" verwendet werden. @SONST 1\tnix Normalerweise d rfen nur Anreden der ersten Stufe und Footer aus der Footerdatei mit dem Alias "nix" verwendet werden. Da eine solche Datei nicht existiert, werden normalerweise keine Footer gesetzt. @GRUPPEN TeX\t\tInterNet TeX-D-L\t\tInterNet In den beiden Gruppen "TeX" und "TeX-D-L" soll ein Footer aus der Footerdatei mit dem Alias "InterNet" verwendet werden. Zwischen den beiden "\t" k nnte noch eine Stufe f r Anreden und Gr e angegeben werden. Da nicht angegeben ist, wird die bei @SONST angegebene Stufe verwendet. @FOOTER dfug \t\\footer\\bauern.txt InterNet\t\\footer\\internet.txt tzlich\t\\footer\\footer.txt Es sind drei Alias f r Footerdateien definiert. Der erste verweist auf eine Datei mit Bauernregeln, der zweite auf eine Datei mit Footern f InterNet-Mails, der dritte auf die allgemeine Footerdatei. Alle Footerdateien befinden sich in dem Verzeichnis "footer" der CAT-Partition (es ist jedoch empfehlenswert, die Dateinamen auch noch mit einer Laufwerkskennung zu versehen). @ENDE Dieses Schl sselwort markiert das Ende der Nicknamedatei. Der Rest wird berhaupt nicht mehr eingelesen: So, das war's. Wenn Fliegen hinter Fliegen fliegen, fliegen Fliegen Fliegen nach. Was IO-Converter mit obiger "nickname.nik" aus einem Infile macht, ist dem Beispiel-Infile aus dem Kapitel ber die Beispiel-Filterdatei "infile.cnf" zu entnehmen. 3 Die Beispiel-Filterdatei 'infile.cnf' ? infile.cnf Hier wird eine Filterdatei f r Infiles beispielhaft eingef hrt und utert. Die Zeilen aus der Filterdatei sind dabei in einer anderen Schrift hervorgehoben bzw. einger Die Filterdatei stammt urspr nglich von Richard Kampmann @ UN, der sich jederzeit f r Erg nzungen interessiert. # ====================================================== # @(#) Filterdatei f r IO_CONVERTER II # ====================================================== # hier: Filterdatei f r das Infile Es handelt sich hier um beide m gliche Arten der Kommentare. brigens kann ich nur empfehlen, das what.ttp (z.B. von Julian F. Reschke) auf diese Datei anzuwenden (die @(#)-Zeile wird dabei verwendet). ; ------------------------------------------------------------- ; --- Definition der verschiedenen Filter --- ; ------------------------------------------------------------- FILTER=Umlautlangform ; Au erdem sollen alle Paragraphzeichen zu "Par." werden: " "Par." Es wurde hier ein Filter zur Wandlung von Umlauten und den beiden Sonderzeichen " " und " " in eine Langform definiert. Es handelt sich hier um einen freien Filter, bei dem nur die einfache Stringersetzung Verwendung findet. ; ------------------------------------------------------------- FILTER=TeX-Umlautlangform " "Par." Das selbe wie bei `Umlautlangform` mit Umlaut- und Sonderzeichenformen, wie sie z.B. f r LaTeX blich sind. ; ------------------------------------------------------------- ; --- Jetzt Aufruf der verschiedenen Konvertierungen --- ; ------------------------------------------------------------- PERSON=.*@.....+ !Umlautlangform r alle Empf nger, bei denen nach dem Klammeraffern ("AT") mehr als vier (mindestens 5) Zeichen folgen, soll in die Umlautlangform gewandelt werden. Dazu wird f r diese User der freie Filter `Umlautlangform` aktiviert. Der verwendete regul re Ausdruck bedeutet im einzelnen: beliebige Zeichen in beliebiger Anzahl (".*") gefolgt von einem Klammeraffen ("@") gefolgt von vier beliebigen Zeichen ("....") gefolgt von mindestens einem weiteren, beliebigen Zeichen (".+"). GRUPPE=.*\\.de !Umlautlangform r alle Gruppen, deren Namen aus beliebig vielen Zeichen, gefolgt von ".de", bestehen, soll ebenfalls der freie Filter `Umlautlangform` aktiviert werden. Vielleicht fragen Sie sich jetzt, warum der Backslash doppelt verwendet wird. Die Antwort ist sehr einfach. Das Argument ".*\\.de" wird zun als C-String interpretiert. Das Ergebnis ist dann zun chst ".*\.de". Dieses wird nun als regul rer Ausdruck interpretiert. Dabei mu Punkt von ".de" gequotet werden, weil der nichtgequotete Punkt f r jedes beliebige Zeichen steht. GRUPPE=TEX-D-L !TeX-Umlautlangform Da es sich bei der Gruppe TEX-D-L um eine Mailingliste aus dem InterNet handelt, funktioniert die - in diesem Fall besonders wichtige - Umlautwandlung nicht immer. Au erdem haben sich in jener Gruppe Umlaute nach TeX-Konvention eingeb rgert. Deshalb aktivieren wir f r diese Gruppe die entsprechende Wandlung. GRUPPE=TEX !TeX-Umlautlangform siehe Gruppenfilter `TEX-D-L`. ; Jetzt kommt berfl ssiger Quatsch ZEILE=:TeX Hallo.* :TeX Hallo=Hallo !TeX-Umlautlangform Da es in Kommentaren (au ber den Infoblock) keine eindeutige Gruppen- bzw. Empf ngerzuordnung gibt (zumindest bis CAT 2.63), wird hier die TeX-Umlautlangform auch noch explizit ber eine Infile-Zeile, die mit ":TeX Hallo" beginnt, aktiviert. Das "TeX Hallo" aus der Textzeile wird au erdem ber die einfache Stringersetzung in "Hallo" gewandelt. An dieser Stelle m chte ich nocheinmal darauf hinweisen, da Zeile-Filter nicht Mail-Text-Zeilen sondern komplette Zeilen aus dem fertigen Infile betrachtet. Die Zeilenkennung wird also in jedem Fall mitber cksichtigt. Deshalb steht hier am Anfang des Arguments ":TeX Hallo.*" der Doppelpunkt, der in Infiles am Anfang jeder Textzeile steht. Dieser Zeile-Filter ist hier nur aus Demonstrationsgr nden zu finden. Die Aktivierung des freien Filters `TeX-Umlautlangform`, kann wesentlich einfacher mit Hilfe des Infoblocks und des Gruppenfilters `TEX` erfolgen. ALLE -Anrede=hallo -Anrede=hi -Controlfilter=true -Filterschutz=an -Gru =true r alle Mails soll die automatische Anrede eingeschaltet werden. Im Regelfall wird f r die eigentliche Anrede wohl die Nicknamedatei verwendet werden. Es mu jedoch mindestens eine der festeingebauten Anreden aktiviert werden, wenn berhaupt automatische Anreden verwendet werden sollen. Eine dieser aktivierten, festeingebauten Anreden wird dann in dem Fall verwendet, da kein Empf ngername auszumachen ist. (Oh, welch ein Absatz!) PERSON=.* -Footer=ja In allen PMs sollen Footer erlaubt sein. Was nun IO-Converter mit Hilfe dieser Filterdatei aus einem Infile macht, ist dem Kapitel mit einem Beispiel-Infile zu entnehmen. 3 Die Beispiel-Footerdatei 'footer.txt' ? footer.txt Hier wird eine Footerdatei beispielhaft eingef hrt und erl utert. Die Zeilen aus der Footerdatei sind dabei in einer anderen Schrift hervorgehoben bzw. einger Dieser Footer wurde mit IO-Converter gesetzt. IO-Converter-Beispiel f r\nzweizeilige Footer. Die erste Zeile definiert einen sehr einfachen einzeiligen Footer. Die zweite Zeile definiert einen ebenso einfachen aber zweizeiligen Footer. Die zweite Footer-Zeile beginnt hinter dem "\n". Der Zeilenumbruch am Ende eines Footers wird automatisch eingef 4 Was IO-Converter aus dem Beispiel-Infile macht ? Beispiel-Infile Wir gehen hier davon aus, da IO-Converter mit: io_conv.ttp -f infile.cnf -n nickname.nik infile.txt aufgerufen wird. Bei "infile.cnf" und "nickname.nik" handelt es sich dabei um die Dateien aus den vorherigen Kapiteln, die im aktuellen Verzeichnis (das ist normalerweise das Verzeichnis von io_conv.ttp) stehen m ssen. Da "nickname.nik" gleichzeitig der voreingestellte Nicknamedatei-Name ist, k nnte der Aufruf auch: io_conv.ttp -f infile.cnf infile.txt lauten (beim Aufruf als CAT-I/O-Filter entsprechend). Die Zeilen aus dem Infile sind dabei in einer anderen Schrift hervorgehoben bzw. einger #HEAD :Dies ist ein Infile-Beispiel, das niemals als Outfile in CAT :eingelesen werden sollte. :CAT bis Version 2.63 weigert sich gl cklicherweise auch dagegen. Falls es jemanden interessiert: Der Trick liegt darin, da kein LOG-Block vorhanden ist. "#HEAD" kommt nat rlich normalerweise in einem Infile nicht vor. #ID0815 Dies ist tats chlich eine g ltige ID. Die Maus-Doku schreibt nicht vor, die ID einer PM mit einem "P" und die ID einer AM mit einem "A" beginnt. Sie schreibt auch nicht vor, da die ID ein "AT" (Klammeraffen) gefolgt vom Mausk rzel des Absenders enth ARichard Kampmann @ UN ber die "A"-Zeile wird der Empf nger angegeben. Damit ist eindeutig ausgesagt, da es sich um eine PM handelt. WDemonstration von IO-Converter Die "W"-Zeile definiert den Betreff (das sogenannte Subject). Auf diese Zeile w rde ein eventueller RE- oder LALL-Filter wirken. E199506070000 Datum und Uhrzeit im Maus-Format. :Dies war einmal die erste Textzeile der Mail. brigens werden hier Anrede, Schlu und Footer automatisch gesetzt. :--- Das war jetzt der eigentliche Text. F r die Maus ist jede Zeile ein Absatz! #ID0816 GTEX Die "G"-Zeile gibt die Zielgruppe an. Es handelt sich damit eindeutig um eine AM. WDemonstration von IO-Converter E199506070000 :Diese Mail kann eindeutig der Gruppe TeX zugeordnet werden. :Welche Auswirkungen das auf ' ' und ' ' hat, kann man :hier sehen. :Anrede und Schlu werden automatisch gesetzt. #ID0817 GTEX WDemonstration von IO-Converter E199506070000 :* Name: Richard Kampmann @ UN Es handelt sich hier um eine Gruppenmail, bei der die Empf ngeradresse r die Anrede explizit angegeben ist. Die `einzelne` Leerzeile geh zum Infoblock und wird ebenfalls gel scht. Hier wurde als Argument der "* Name: "-Zeile die Mailadresse verwendet. Weiter unten wird statt dessen der Realname direkt eingesetzt. :Diese Mail kann eindeutig der Gruppe TeX zugeordnet werden. :Welche Auswirkungen das auf ' ' und ' ' hat, kann man :hier sehen. :Anrede und Schlu werden automatisch gesetzt, wobei der :Infoblock Verwendung findet. #ID0818 -ID0816 Es handelt sich hier um einen Kommentar zu einer andere Mail. Es sind weder Empf nger noch Zielgruppe angegeben (CAT bis Version 2.63 tut das einfach nicht, obwohl es inzwischen erlaubt ist). Daher kann zun nicht festgestellt werden, ob es sich um eine AM oder PM handelt. WDemonstration von IO-Converter E199506070000 :* Gruppe: TEX ber den Infoblock wurde nun bestimmt, da die Mail wie eine AM der Gruppe "TEX" behandelt werden soll. :Diese Mail kann mit Hilfe des Info-Blocks eindeutig der Gruppe :TeX zugeordnet werden. :Welche Auswirkungen das auf ' ' und ' ' hat, kann man :hier sehen. :Anrede und Schlu werden automatisch gesetzt. #ID0819 -ID0816 WDemonstration von IO-Converter E199506070000 :* Gruppe: TEX :* Name: Richard Kampmann Hier wurde zus tzlich bestimmt, da es zwar eine AM der Gruppe "TEX" sein soll, die Anrede (und nat rlich auch Schlu und Footer) ist aber entsprechend dem Empf nger "Richard Kampmann" zu setzen. Ob Anrede, Gru und Footer gesetzt werden, h ngt jedoch von den Filtern f die Gruppe "TEX" ab. Das h rt sich jetzt komplizierter an, als es ist. :Diese Mail kann mit Hilfe des Info-Blocks eindeutig der Gruppe :TeX zugeordnet werden. :Welche Auswirkungen das auf ' ' und ' ' hat, kann man :hier sehen. :Anrede und Schlu werden automatisch gesetzt, wobei der :Infoblock Verwendung findet. :--- #ID0820 AMarkus_Kohm@ka2.maus.de Hier noch ein Beispiel einer Mail, die eine InterNet-Adresse besitzt. In Wirklichkeit ist das zwar ein Empf nger in einer Maus, die Adressierung erfolgt aber via InterNet. WDemonstration von IO-Converter E199506070000 :Diese Mail demonstriert nun die Wandlung, die Mails ins InterNet :erfahren. :Welche Auswirkungen das auf ' ' hat, kann man hier sehen. :Es gibt aber auch die M glichkeit, seine Umlaute zu verdeutlichen. brigens sehen meine Originalumlaute hier so aus: :$begin und das Sonderzeichen: :$end :Anrede und Schlu werden automatisch gesetzt. Mal sehen, ob :es auch einen Footer gibt. :--- Schauen wir uns jetzt an, was IO-Converter daraus macht. Zun chst einmal die Ausgaben von IO-Converter: IO-Converter Version 2.1, Copyright (c) Markus Kohm, Jun 6 1995 Warnung: Anrede mit unbekanntem Namen! Msg-ID=ID0816 Warnung: Anrede mit unbekanntem Namen! Msg-ID=ID0818 Mit diesen Warnungen wird darauf hingewiesen, da bei den Mails "#ID0816" und "#ID0818" keine Namen f r die Anrede ermittelt werden konnten. Es wurde daher auf die Alternativen ohne Name ausgewichen. Und wie sieht das Infile nach der Wandlung nun aus: #HEAD :Dies ist ein Infile-Beispiel, das niemals als Outfile in CAT :eingelesen werden sollte. :CAT bis Version 2.63 weigert sich gl cklicherweise auch dagegen. #ID0815 ARichard Kampmann @ UN WDemonstration von IO-Converter E199506070000 :Servus Genialer Betatester, Die Anrede wurde zuf llig aus den m glichen ausgew :Dies war einmal die erste Textzeile der Mail. brigens werden hier Anrede, Schlu und Footer automatisch gesetzt. :Tsch :Markus Der Schlu wurde zuf llig aus den m glichen ausgew :--- :Fri t die Kuh am Liebsten Klee, :Tut's dem Bauern im Geldbeutel weh. Der zweizeilige Footer entstammt der Datei mit den dummen Spr chen und wurde ebenfalls zuf llig ausgew #ID0816 GTEX WDemonstration von IO-Converter E199506070000 :Hallo, Hier haben wir eine der Mails, f r die kein Empf nger gefunden werden konnte, weshalb eine namenlose (interne) Anrede verwendet wurde. :Diese Mail kann eindeutig der Gruppe TeX zugeordnet werden. :Welche Auswirkungen das auf '"a"o"u"A"O"U', '"s' und 'Par.' hat, kann man :hier sehen. :Anrede und Schlu"sgru"s werden automatisch gesetzt. :Mit freundlichen Gr"u"sen :Markus Kohm Wir erinnern uns, da in der Gruppe "TEX" aufgrund der Nicknamedatei nur e der voreingestellten Stufe 1 verwendet werden d rfen. Das ist genau dieser eine Gru #ID0817 GTEX WDemonstration von IO-Converter E199506070000 :Hi Genialer Betatester, :Diese Mail kann eindeutig der Gruppe TeX zugeordnet werden. :Welche Auswirkungen das auf '"a"o"u"A"O"U', '"s' und 'Par.' hat, kann man :hier sehen. :Anrede und Schlu"sgru"s werden automatisch gesetzt, wobei der :Infoblock Verwendung findet. :Tsch"u"s, :Markus Hier wurde nicht der Gru der Stufe 1 verwendet, obwohl es sich um dieselbe Gruppe handelt. Durch Angabe eines Namens wurden jedoch die r diesen Namen aktiviert. #ID0818 -ID0816 WDemonstration von IO-Converter E199506070000 :Hi, :Diese Mail kann mit Hilfe des Info-Blocks eindeutig der Gruppe :TeX zugeordnet werden. :Welche Auswirkungen das auf '"a"o"u"A"O"U', '"s' und 'Par.' hat, kann man :hier sehen. :Anrede und Schlu"sgru"s werden automatisch gesetzt. :Mit freundlichen Gr"u"sen :Markus Kohm Das war die zweite Mail, f r die kein Empf nger festgestellt werden konnte. Da jedoch die Gruppe im Infoblock angegeben war, konnten die entsprechenden Filter und die Gru einschr nkungen verwendet werden. #ID0819 -ID0816 WDemonstration von IO-Converter E199506070000 :Hallo Genialer Betatester, :Diese Mail kann mit Hilfe des Info-Blocks eindeutig der Gruppe :TeX zugeordnet werden. :Welche Auswirkungen das auf '"a"o"u"A"O"U', '"s' und 'Par.' hat, kann man :hier sehen. :Anrede und Schlu"sgru"s werden automatisch gesetzt, wobei der :Infoblock Verwendung findet. :Tsch"u"s, :Markus :--- Es wurde kein Footer gesetzt, weil es sich laut Infoblock um eine AM handelt. Die Angabe eines Namens im Infoblock gen gt nicht, um den Filter zu aktivieren, der Footer einschaltet. Statt dessen m te ein Empf nger definiert werden ("An" statt "Name"). #ID0820 AMarkus_Kohm@ka2.maus.de WDemonstration von IO-Converter E199506070000 :Sehr geehrter Herr Kohm! :Diese Mail demonstriert nun die Wandlung, die Mails ins InterNet :erfahren. :Welche Auswirkungen das auf 'aeoeueAeOeUe' hat, kann man hier sehen. :Es gibt aber auch die Moeglichkeit, seine Umlaute zu verdeutlichen. :Uebrigens sehen meine Originalumlaute hier so aus: und das Sonderzeichen: Die Markierungen "$begin" und "$end" f r den zu sch tzenden Block wurden wie gew nscht entfernt. Die Zeile dazwischen wurde eindeutig nicht konvertiert. :Anrede und Schlussgruss werden automatisch gesetzt. Mal sehen, ob :es auch einen Footer gibt. :Mit freundlichen Gruessen :Markus Kohm :--- Auch diese Mail wird nicht mit einem Footer versehen, weil die Standard-Footerdatei mit dem Alias "nix" nicht existiert (und auch keine Datei mit dem Namen "nix"), also auch kein Footer daraus gelesen werden kann. Das war's. Diese Beispiele k nnen nat rlich nur einige Grundf higkeiten von IO-Converter demonstrieren. F r die Demonstration aller glichkeiten br uchte man ein Infile von einigen 10 KByte Gr 3 Die Beispiel-Filterdatei 'outfile.cnf' ? outfile.cnf Hier wird eine Filterdatei f r Outfiles beispielhaft eingef hrt und utert. Die Zeilen aus der Filterdatei sind dabei in einer anderen Schrift hervorgehoben bzw. einger Die Filterdatei stammt urspr nglich von Richard Kampmann @ UN, der sich jederzeit f r Erg nzungen interessiert. # ====================================================== # @(#) Filterdatei f r IO_CONVERTER II # ====================================================== # hier: Filterdatei f r das Outfile Es handelt sich hier um die erste Art der m glichen Kommentare. Wie hier zu sehen ist, sind auch Leerzeilen erlaubt. ; ------------------------------------------------------------- ; --- Definition der verschiedenen Filter --- ; ------------------------------------------------------------- ######## Generelle Wandlung f r alle Mails #################### FILTER=General -RE-Filter=on -Controlfilter=on -Leermailfilter=on -Filterschutz=on Dieser freie Filter wird sp ter f r alle Mails aktiviert. Er sorgt r, da alle Formen von "RE" im Betreff entfernt werden, Steuerzeichen aus dem Mails gel scht werden (weil CAT bis 2.63 sonst glicherweise mit Bomben um sich wirft), leere Mails eine Textzeile bekommen (weil CAT zumindest bis Version 2.63 sonst Probleme mit dem Einsortieren bekommt), bestimmte Mailteile wie UUE-codierte Zeilen nach glichkeit erkannt und vor Filterung gesch tzt werden und da falsche Akzent " " in ein Hochkomma gewandelt wird. ######## in TeX-Gruppen TeX-Umlaute zur ckwandeln ############# FILTER=TeX-Umlautr ckwandelung :"a= :"o= :"u= :"s= :"A= :"O= :"U= :\\"a= :\\"o= :\\"u= :\\"s= :\\"A= :\\"O= :\\"U= :\\S= ;Achtung! Bei der ersten Art zu wandeln k nnen Umlaute und Anf hrungs- ;striche gefolgt von einem Buchstaben nicht unterschieden werden! Wenn ;das jemanden st rt, mu er den ersten Block l schen. L sungen f r das ;Problem werden jederzeit gerne entgegengenommen ... Hier hat Richard eigenlich schon ausreichend kommentiert ... ######## Durch das Gate nach MIME zerhackte Mails reparieren ## ; Achtung - dieser Filter ist nur duch Ausprobieren ermittelt! FILTER=MIME-Conversion Die MIME-Conversion ist im InterNet relativ weit verbreitet. Sie glicht u.a. die 7Bit-Codierung von Zeichen mit einem 8Bit-Code. "=E4" " "=F6" " "=FC" " "=C4" " "=D6" " "=DC" " "=DF" " "=9E" " ; ... und nun noch "exotische": ; "weicher" Zeilenumbruch: "=\n" "" Hier wird mit der erweiterten String-Ersetzung ein Gleichheitszeichen, das am Zeilenende steht, samt dem Zeilenumbruch entfernt. Es soll nicht verschwiegen werden, da dies zu einer Warnung f hren kann, wenn ein Gleichheitzeichen am Zeilenende vor einen zusch tzenden Block oder am Mailende steht. Da dieser Fehler abgefangen wird, kommt es jedoch zu keinen Fehlfunktionen. ; Punkt am Zeilenanfang: "=2E" "." ; Punkt als 'Item'-Kennzeichen bei Aufz hlungen "=F9" " ; codiertes Gleichheitszeichen (kein Witz!)... "=3D" "=" ; ... to be continued ... ; Erg nzungen und Korrekturen bitte an den Autor melden, damit ; der Filter in k nftigen Versionen erg nzt werden kann! Die MIME-Conversion fordert h chste Leistung von IO-Converter und war ein Grund f r die neue Version. ############################################################### ; ------------------------------------------------------------- ; --- Aufruf der verschiedenen Konvertierungen --- ; ------------------------------------------------------------- ALLE !General Wie versprochen die Aktivierung des freien Filters `General`. PERSON=.*@.....+ !MIME-Conversion Die MIME-Conversion ist in erster Linie f r InterNet-Absender interessant. Also wird sie wieder f r Absender aktiviert, bei denen nach dem Klammeraffen (AT) mindestens 5 Zeichen folgen. GRUPPE=TEX-D-L !TeX-Umlautr ckwandelung GRUPPE=TEX !TeX-Umlautr ckwandelung Die TeX-Umlautr ckwandlung wird nur in den Gruppen TEX-D-L und TEX tigt. ############################################################### Das war's. Was nun IO-Converter mit Hilfe dieser Filterdatei aus einem Outfile macht, ist dem folgenden Kapitel mit einem Beispiel-Outfile zu entnehmen. 4 Was IO-Converter aus dem Beispiel-Outfile macht ? Beispiel-Outfile Wir gehen hier davon aus, da IO-Converter mit: io_conv.ttp -f outfile.cnf -n nickname.nik outfile.txt aufgerufen wird. Bei "outfile.cnf" und "nickname.nik" handelt es sich dabei um die Dateien aus den vorherigen Kapiteln, die im aktuellen Verzeichnis (das ist normalerweise das Verzeichnis von io_conv.ttp) stehen m ssen. Da "nickname.nik" gleichzeitig der voreingestellte Nicknamedatei-Name ist, k nnte der Aufruf auch: io_conv.ttp -f outfile.cnf outfile.txt lauten (beim Aufruf als CAT-I/O-Filter entsprechend). Die Nicknamedatei wird hier lediglich geladen, damit IO-Converter sich nicht ber das Fehlen selbiger beschwert. Im Grunde k nnte man aber gut auf sie verzichten. In diesem Fall k nnte man dann z.B. mit `-n no` eine nicht existierende Nicknamedatei angeben (und daf r eine entsprechende Warnung ernten). Es w re ebenfalls denkbar, eine leere Nicknamedatei anzugeben. Diese w rde nahezu ohne Zeitverz gerung "gelesen" (und eine Warnung rde ebenfalls nicht ausgegeben werden). Eine nahezu leere Datei kann man z.B. mit CAT erzeugen, indem man eine nicht vorhandene Datei ffnet, die Leertaste und anschlie end die Backspace-Taste dr ckt und die Datei schlie Als Outfile wird hier das im Infile-Beispiel erzeugte Infile verwendet, das zus tzlich um die folgende Mail erweitert wurde (au erdem sind selbstverst ndlich "V"-Zeilen sowie bei den Kommentaren auch "A"- bzw. "G"-Zeilen enthalten, die die Maus automatisch setzt.). Die Zeilen aus dem Outfile sind wieder durch eine gesonderte Schrift hervorgehoben bzw. einger #ID0821 AMarkus Kohm @ KA2 VMarkus_Kohm@ka2.maus.de WRe^2:Demonstration von IO-Converter E199506070000 :Hallo Markus, :Diese Mail demonstriert, wie der= : MIME-Filter im allgemeinen so f= :unktioniert. :Es ist sicher interessant, das e= :inmal im Detail zu sehen. :R=E4te, R=FCbe, R=F6llchen, =C4p= :fel, =D6se, =DCbel, Na=DF. :Na wie war :Gru=DF : Markus. Schauen wir uns zun chst die Ausgabe an von IO-Converter an: IO-Converter Version 2.1, Copyright (c) Markus Kohm, Jun 6 1995 Es wurde offenbar kein Fehler gefunden. Also wenden wir uns dem erzeugten Outfile zu: #HEAD :Dies ist ein Outfile-Beispiel, das niemals als Outfile in CAT :eingelesen werden sollte. :CAT bis Version 2.63 weigert sich gl cklicherweise auch dagegen. #ID0815 ARichard Kampmann @ UN VMarkus Kohm @ KA2 WDemonstration von IO-Converter E199506070000 :Servus Genialer Betatester, :Dies war einmal die erste Textzeile der Mail. brigens werden hier Anrede, Schlu und Footer automatisch gesetzt. :Tsch :Markus :--- :Fri t die Kuh am Liebsten Klee, :Tut's dem Bauern im Geldbeutel weh. Diese erste Mail kam wie gew nscht ohne weitere nderung an. #ID0816 GTEX VMarkus Kohm @ KA2 WDemonstration von IO-Converter E199506070000 :Hallo, :Diese Mail kann eindeutig der Gruppe TeX zugeordnet werden. :Welche Auswirkungen das auf ' ' und 'Par.' hat, kann man :hier sehen. :Anrede und Schlu werden automatisch gesetzt. :Mit freundlichen Gr :Markus Kohm Es ist gelungen, die TeX-Umlaute wieder in normale Umlaute ckzuwandeln. Selbiges gilt f r die Mails ID0817, ID0818 und ID0819, weshalb ich diese hier aus dem Beispiel entfernt habe. #ID0820 AMarkus_Kohm@ka2.maus.de VMarkus Kohm @ KA2 WDemonstration von IO-Converter E199506070000 :Sehr geehrter Herr Kohm! :Diese Mail demonstriert nun die Wandlung, die Mails ins InterNet :erfahren. :Welche Auswirkungen das auf 'aeoeueAeOeUe' hat, kann man hier sehen. :Es gibt aber auch die Moeglichkeit, seine Umlaute zu verdeutlichen. :Uebrigens sehen meine Originalumlaute hier so aus: und das Sonderzeichen: :Anrede und Schlussgruss werden automatisch gesetzt. Mal sehen, ob :es auch einen Footer gibt. :Mit freundlichen Gruessen :Markus Kohm :--- In der InterNet-Mail wurde nichts weiter ver ndert. #ID0821 AMarkus Kohm @ KA2 VMarkus_Kohm@ka2.maus.de WDemonstration von IO-Converter E199506070000 :Hallo Markus, :Diese Mail demonstriert, wie der MIME-Filter im allgemeinen so funktioniert. :Es ist sicher interessant, das einmal im Detail zu sehen. te, R be, R llchen, pfel, bel, Na :Na wie war's? :Gru : Markus. Sowohl die MIME-Zeilenumbr che, als auch die Umlaute wurden wundersch ckgewandelt. Damit ist die Mail wesentlich besser lesbar. U.U. w es sinnvoll, zum MIME-Filter zus tzlich die Option "-Zeilenl nge" zu verwenden, damit keine au erodentlich langen Zeilen entstehen k nnen. Ich hoffe, dieses Beispiel hat die F higkeiten von IO-Converter zumindest ansatzweise demonstriert. 1 Ausblick ? Ausblick IO-Converter ist noch lange nicht fertig. Was Sie derzeit in H (bzw. auf der Platte/Diskette) haben, ist im Prinzip nicht mehr als eine - allerdings schon sehr brauchbare - Vorabversion. Viele weitere glichkeiten sind geplant. Einige davon werden irgendwann umgesetzt werden, andere werden wieder in der Versenkung verschwinden. Anregungen sind jederzeit willkommen; was letztlich implementiert wird, h ngt von der Resonanz und meiner Laune ab. Angedacht ist bisher: #\begin{itemize} #\item Unterst"utzung externer Filter (z.B. Daemons) #\item Fehlerausgabe im Klartext statt mit Nummern #\item Footertrennlinie optional automatisch zuf"ugen #\item Option zur Behandlung von "`war:"' in Betreffs #\item Priorit tenoptionen f r Bevorzugung von Eintr gen im Infoblock # oder im Mailheader #\item Mehrfachanwendung der Filter auf eine Mail #\item Aktivierung von Filtern ber den Infoblock #\item Deaktivierung von Filtern innerhalb von Filtern analog zur # Aktivierung #\item Deaktivierung von Filtern ber den Infoblock #\item Realisierung der Funktionalit t von IFI #\item \dots #\end{itemize} - Unterst tzung externer Filter (z.B. Daemons) - Fehlerausgabe im Klartext statt mit Nummern - Footertrennlinie optional automatisch zuf - Option zur Behandlung von "war:" in Betreffs - Priorit tenoptionen f r Bevorzugung von Eintr gen im Infoblock oder im Mailheader - Mehrfachanwendung der Filter auf eine Mail - Aktivierung von Filtern ber den Infoblock - Deaktivierung von Filtern innerhalb von Filtern analog zur Aktivierung - Deaktivierung von Filtern ber den Infoblock - Realisierung der Funktionalit t von IFI - ... Wenn ich sehe, was andere Filter, f r die tats chlich Geld verlangt wird, so bieten - oder auch nicht bieten -, f llt mir bestimmt noch eine Menge ein. Auf der anderen Seite mu IO-Converter den Vergleich mit manchem Shareware-Filter sicher nicht f rchten. Wer brigens eine Freeware-GEM-Shell f r IO-Converter programmieren will, kann sich gerne bei mir melden. 1 CAT-I/O-Filter ? CAT-I/O-Filter Hier sind nur Filter aufgef hrt, die frei (incl. Postcardware) und mir bekannt sind. Weitere freie Filter k nnen jederzeit gerne aufgenommen werden. ? CAT-Rondo #\minisec{CAT-Rondo {\normalfont\sffamily von Matthias St rmer @ KA2}} @{B}CAT-Rondo@{b} von Matthias St rmer @@ KA2 Rundschreibengenerator f r CAT. Erzeugt aus einer Message mit speziellem Adressaten und einer Adre datei entsprechend viele Kopien der Message, wobei eingeschr nkt Serienbrieffunktionen zur Verf gung stehen. Geeignet f r Messages. ? FixIO #\minisec{FixIO {\normalfont\sffamily von Markus Kohm @ KA2}} @{B}FixIO@{b} von Markus Kohm @@ KA2 Dieser Filter ersetzt einzelne Zeichen durch Zeichenketten, Tabulatoren durch die gew nschte Anzahl an Leerzeichen (bzw. bis zur gew nschten Position durch Leerzeichen) und umbricht den Text auf Wunsch. Dieser Filter ist bei Verwendung von `IO-Converter` nahezu berfl ssig. Geeignet f r In- und Outfile. ? IFI #\minisec{IFI \{\normalfont\sffamily von Markus Kohm @ KA2}} @{B}IFI@{b} von Markus Kohm @@ KA2 Urspr nglich gedacht als universeller Infile-Filter. Kann aber theoretisch auch auf Outfiles angewandt werden. ber spezielle Aktivierungsbefehle im Mailtext k nnen Mailtexte bzw. Teile daraus an andere Programme bergeben werden. Nach der Bearbeitung werden die Teile dann in der bearbeiteten Form wieder eingesetzt. Es ist so auch m glich, Teile zu l schen oder neu zuzuf Geeignet f r In- und Outfile. ? InterNet-to-Maus-Gate ? I2M-Gate #\minisec{InterNet-to-Maus-Gate {\normalfont\sffamily von Markus Kohm @ KA2}} @{B}InterNet-to-Maus-Gate@{b} von Markus Kohm @@ KA2 Erzeugt aus einer InterNet-mailbox-Datei ein Outfile oder f gt die Mails entsprechend in ein existierendes Outfile ein, so da sie von CAT importiert werden k nnen. Es wird ber eine spezielle Form des Absenders und eine "Reply to"-Angabe daf r gesorgt, da die Mails auch innerhalb der normalen Database ber die Maus beantwortet werden k nnen. berlange Mails werden automatisch aufgeteilt. Dieses Programm ist nicht ffentlich, sondern nur auf Nachfrage ltlich. Geeignet f r InterNet-mailbox-Datei (und Outfile). ? INTool #\minisec{INTool {\normalfont\sffamily von Ole Pahl @ IZ}} @{B}INTool@{b} von Ole Pahl @@ IZ Infile-Utility, das ber bestimmte Strings in einer Mail Anreden setzen, Dateien einf gen und zuf llige Spr che aus einer Datei ausw hlen und einsetzen kann. Die Funktionalit t wird - allerdings auf andere Art - auch von IO-Converter erbracht. Geeignet f r Infile. #\minisec{IO-Converter {\normalfont\sffamily von Markus Kohm @ KA2}} @{B}IO-Converter@{b} von Markus Kohm @@ KA2 Dieser Filter vereinigt diverse M glichkeiten. Er kann selektiv Zeichen und Zeichenfolgen innerhalb von Mails ersetzen, verschiedene Formen von "RE" und "LALL" aus der Betreffzeile entfernen, Anreden, Gr e und Footer ins Mails einbauen u.v.m. Geeignet f r In- und Outfiles. ? Jelly Cat #\minisec{Jelly Cat {\normalfont\sffamily von Markus Kohm @ KA2}} @{B}Jelly Cat@{b} von Markus Kohm @@ KA2 Dieser Filter sorgt bei einger ckten Textbl cken in Messages automatisch r, da diese gesch tzt werden, also feste Zeilenenden bekommen und von der Maus nicht mehr auf eine gr ere Breite umbrochen werden k nnen. Sehr n tzlich, um zerhackte Zeilen, wie sie z.B. in Atari.News fter zu sehen sind, zu vermeiden. Dar ber hinaus kann Jelly Cat ab Version 1.1 den Infoblock automatisch setzen! Geeignet f r Messages. ? Katzenklo #\minisec{Katzenklo {\normalfont\sffamily von Thomas Neumann @ DU}} @{B}Katzenklo@{b} von Thomas Neumann @@ DU Der Welt bester Laberfilter f r CAT (Freeware bis Version 1.07). Geeignet f r Outfile. ? T2D2T ? TOS2DOS2TOS #\minisec{T2D2T {\normalfont\sffamily von Markus Kohm @ KA2}} @{B}T2D2T@{b} von Markus Kohm @@ KA2 Ersetzt das DOS- durch das TOS- und umgekehrt (je nach Wunsch). Dieser Filter ist z.B. n tzlich, wenn eine Quark keine Umlautkonvertierung f Atari anbietet. Der Filter ist bei Verwendung von IO-Converter berfl ssig. Geeignet f r In- und Outfile. 1 CAT-Zusatzprogramme ? CAT-Zusatzprogramme Hier sind nur Programme und Dateien aufgef hrt, die frei (incl. Postcardware) und mir bekannt sind. Weitere freie Programme und Dateien nnen jederzeit gerne aufgenommen werden. ? Bingo #\minisec{Bingo {\normalfont\sffamily von Ingo Pl ckhahn @ DU}} @{B}Bingo@{b} von Ingo Pl ckhahn @@ DU `Cat-Stat` mit GEM-Shell. ? CatMail #\minisec{CatMail {\normalfont\sffamily von Wolfgang Wander @ H2}} @{B}CatMail@{b} von Wolfgang Wander @@ H2 gt Texte zum Versand in die Messageverwaltung von CAT ein. ? Cat-Stat #\minisec{Cat-Stat {\normalfont\sffamily von Timm Ganske @ F}} @{B}Cat-Stat@{b} von Timm Ganske @@ F Erzeugt Statistiken und Outfiles aus der CAT-Database. ? CAT-Tausch #\minisec{CAT-Tausch {\normalfont\sffamily von Markus Kohm @ KA2}} @{B}CAT-Tausch@{b} von Markus Kohm @@ KA2 Dieses Programm automatisiert den Aufruf von Mailer (z.B. CAT), Packer und Terminalprogramm auch f r mehrere User (ein Tausch!), auf Wunsch zeitgesteuert. Das Programm erm glicht u.a. den gepackten Tausch, auch wenn der Speicher nicht reicht, damit CAT den Wunschpacker aufrufen kann. ? MSORT #\minisec{MSORT {\normalfont\sffamily von Andreas Frank @ S}} @{B}MSORT@{b} von Andreas Frank @@ S Sortiert die CAT-Adre datei nach Vor- oder Nachnamen. ? TAUDOKU ? tau_doku.hyp #\minisec{TAUDOKU {\normalfont\sffamily von Uwe Ohse @ DU}} @{B}TAUDOKU@{b} von Uwe Ohse @@ DU3 Dokumentation des MausTauschs. In verschiedenen Formaten verf gbar.